Newest 'libx264' Questions - Stack Overflow
Les articles publiés sur le site
-
ffmpeg error message : MB Rate > level limit [closed]
10 juin 2013, par pleasehelpmeRunning the
.bat
script for rotating a video's orientation generates this error message:[libx264 @ 0162fb80] MB rate (108000000) > level limit (2073600)
It appears on some videos, and the outputs of these videos are corrupted. How to fix this error?
set ffm="C:\ffmpeg\bin\ffmpeg.exe" set frmt=*.mp4 cd "D:\..." for %%f in (%frmt%) do %ffm% -i "%%f" -vf "transpose=2" -vsync 2 -sameq %%f.mp4" mkdir old move %frmt% old\ @echo ********************************** @echo **** Press any key to finish ***** @echo ********************************** pause
-
FFMPEG : MB Rate > Level Limit Error Message
10 juin 2013, par pleasehelpmeRunning a .bat file for rotating a video's orientation generates this error message.
[libx264 @ 0162fb80] MB rate (108000000) > level limit (2073600)
It appears on some videos, and the outputs of these videos are corrupted. How to fix this error?
.bat for rotating video orientation
set ffm="C:\ffmpeg\bin\ffmpeg.exe" set frmt=*.mp4 cd "D:\..." for %%f in (%frmt%) do %ffm% -i "%%f" -vf "transpose=2" -vsync 2 -sameq %%f.mp4" mkdir old move %frmt% old\ @echo ********************************** @echo **** Press any key to finish ***** @echo ********************************** pause
-
Encode h264 to match existing stream
6 juin 2013, par Diego SánchezIn short: I have to encode a tiny amount of video frames and stitch them in front of a much bigger h.264 stream without reencoding said stream.
The details: I receive a multi GB transport stream containing a h.264 es and an audio es. Currently the h.264 streams are always generated using x264, and I can assume this will be the case in the future. Now I have to prepend some video frames to this stream, but am not allowed to decode/encode the whole stream; which leaves me with the only option to find out the exact parameters I need to pass x264_encoder_open so both streams match.
Currently what I'm doing is :
- Demux the original ts and extract h.264 NAL packets.
- When I find the first "user data unregistered" SEI packet, I parse it and find a bunch of x264 parameters.
- Use libavcodec to start decoding the video. That gives me the dimensions of the picture and the h264 profile and level in the AVCodecContext structure.
- Match all of that as best as I can in the x264_param_t structure.
I can do some encoding with that, and the encoded video plays correctly up to the join point. When VLC is reaching the stitch point it starts throwing out the following sequence of messages and soon after stops playing:
[h264 @ 0x7fe36cd75be0] decode_slice_header error [h264 @ 0x7fe36cd75be0] no frame! [h264 @ 0x7fe36ccc9080] Width/height changing with threads is not implemented. Update your Libav version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
which clearly shows that my encoded frames do not match the original ones. I've been browsing the source code and can't seem to find a way of doing this. What I have currently (besides not working), involves a lot of guesswork, so even if I could make it work with the handful of example files I have, I would be scared to deploy this in production servers.
So the obvious question is: Is there a safe, formal way of doing this?
Thanks in Advance
-
libvlc android build with mpeg 4 encoder and h264
6 juin 2013, par jacobI am building libvlc for Android and I enabled sout (
--enable-sout
) but when I try to add sout transcode option, I get this error:cannot find encoder MPEG-4 Video *** Your Libav/FFmpeg installation is crippled. *** *** Please check with your Libav/FFmpeg packager. *** *** This is NOT a VLC media player issue. *** Streaming / Transcoding failed It seems your Libav/FFmpeg (libavcodec) installation lacks the following encoder: MPEG-4 Video.
How can I add mpeg4 encoder support ?
Another option is to add a h264 encoder but I don't know how to add that either.
-
Problems with frame rate on video conversion using ffmpeg with libx264 [migrated]
29 mai 2013, par Lars SchroeterI have problems with transcoding some videos. I ran the most simple ffmpeg command and it takes very long time and the output file is about 10 times bigger. If I provide the frame rate parameter -r it works well (small file, fast transcoding). What is the problem and how can I solve it? I don't want to set a fixed frame rate because I guess it's better to leave it the same as source, isn't it?.
Maybe the problem is something else, because I found many examples in web where the -r option isn't used. Also transcoding to a different format or with a different source works well without -r option (I tried with ffmpeg 0.7.15 and also 1.2.1). The videos are provided by the users of my website and automatically converted to be suitable for the web. So I need the most general command for automatic conversion.
In the following ffmpeg output you will find this two suspicious messages:
- Frame rate very high for a muxer not effciciently supporting it. Please consider specifiying a lower framerate, a different muxer or -vsync 2
- MB rate (36000000) > level limit (983040)
The ffmpeg command and output (without -r option):
ffmpeg -i '/tmp/standort_aquarium.mp4' -vcodec libx264 output.mp4 ffmpeg version 0.7.15, Copyright (c) 2000-2013 the FFmpeg developers built on Feb 22 2013 07:18:58 with gcc 4.4.5 configuration: --enable-libdc1394 --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-avfilter --enable-libdirac --disable-decoder=libdirac --enable-libfreetype --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --extra-libs=-lgcrypt --disable-altivec --disable-armv5te --disable-armv6 --disable-vis libavutil 50. 43. 0 / 50. 43. 0 libavcodec 52.123. 0 / 52.123. 0 libavformat 52.111. 0 / 52.111. 0 libavdevice 52. 5. 0 / 52. 5. 0 libavfilter 1. 80. 0 / 1. 80. 0 libswscale 0. 14. 1 / 0. 14. 1 libpostproc 51. 2. 0 / 51. 2. 0 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/standort_aquarium.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp423gp4isom creation_time : 2013-04-19 15:04:05 Duration: 00:00:18.24, start: 0.000000, bitrate: 2095 kb/s Stream #0.0(und): Video: mpeg4, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 2001 kb/s, 14.97 fps, 30k tbr, 30k tbn, 30k tbc Metadata: creation_time : 2013-04-19 15:04:05 Stream #0.1(und): Audio: aac, 48000 Hz, mono, s16, 96 kb/s Metadata: creation_time : 2013-04-19 15:04:05 File 'output.mp4' already exists. Overwrite ? [y/N] y [mp4 @ 0x20eed80] Frame rate very high for a muxer not effciciently supporting it. Please consider specifiying a lower framerate, a different muxer or -vsync 2 [buffer @ 0x20f8820] w:640 h:480 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_param: [libx264 @ 0x20efde0] Default settings detected, using medium profile [libx264 @ 0x20efde0] using SAR=1/1 [libx264 @ 0x20efde0] MB rate (36000000) > level limit (983040) [libx264 @ 0x20efde0] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 [libx264 @ 0x20efde0] profile High, level 5.1 [libx264 @ 0x20efde0] 264 - core 118 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'output.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp423gp4isom creation_time : 2013-04-19 15:04:05 encoder : Lavf52.111.0 Stream #0.0(und): Video: libx264, yuv420p, 640x480 [PAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 30k tbn, 30k tbc Metadata: creation_time : 2013-04-19 15:04:05 Stream #0.1(und): Audio: libfaac, 48000 Hz, mono, s16, 64 kb/s Metadata: creation_time : 2013-04-19 15:04:05 Stream mapping: Stream #0.0 -> #0.0 Stream #0.1 -> #0.1 Press [q] to stop, [?] for help frame=542630 fps=132 q=33.0 Lsize= 77226kB time=00:00:18.08 bitrate=34976.2kbits/s dup=542358 drop=0 video:68604kB audio:143kB global headers:0kB muxing overhead 12.333275% frame I:2174 Avg QP:18.72 size: 25040 [libx264 @ 0x20efde0] frame P:136846 Avg QP:25.27 size: 56 [libx264 @ 0x20efde0] frame B:403610 Avg QP:32.99 size: 20 [libx264 @ 0x20efde0] consecutive B-frames: 0.8% 0.0% 0.1% 99.1% [libx264 @ 0x20efde0] mb I I16..4: 5.5% 83.3% 11.1% [libx264 @ 0x20efde0] mb P I16..4: 0.0% 0.0% 0.0% P16..4: 0.5% 0.0% 0.0% 0.0% 0.0% skip:99.4% [libx264 @ 0x20efde0] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.0% 0.0% 0.0% direct: 0.0% skip:100.0% L0:21.2% L1:78.8% BI: 0.0% [libx264 @ 0x20efde0] 8x8 transform intra:83.1% inter:85.2% [libx264 @ 0x20efde0] coded y,uvDC,uvAC intra: 91.2% 95.8% 80.7% inter: 0.0% 0.1% 0.0% [libx264 @ 0x20efde0] i16 v,h,dc,p: 13% 40% 12% 35% [libx264 @ 0x20efde0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 34% 15% 4% 4% 5% 6% 7% 8% [libx264 @ 0x20efde0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 38% 6% 4% 6% 6% 8% 6% 6% [libx264 @ 0x20efde0] i8c dc,h,v,p: 39% 32% 19% 10% [libx264 @ 0x20efde0] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0x20efde0] ref P L0: 91.5% 5.2% 2.8% 0.4% 0.0% [libx264 @ 0x20efde0] ref B L0: 55.7% 43.5% 0.8% [libx264 @ 0x20efde0] ref B L1: 97.9% 2.1% [libx264 @ 0x20efde0] kb/s:31071.04
The ffmpeg command and output with the -r 24 option:
ffmpeg -i '/tmp/standort_aquarium.mp4' -r 30000/1001 -vcodec libx264 output.mp4 ffmpeg version 0.7.15, Copyright (c) 2000-2013 the FFmpeg developers built on Feb 22 2013 07:18:58 with gcc 4.4.5 configuration: --enable-libdc1394 --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-avfilter --enable-libdirac --disable-decoder=libdirac --enable-libfreetype --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --extra-libs=-lgcrypt --disable-altivec --disable-armv5te --disable-armv6 --disable-vis libavutil 50. 43. 0 / 50. 43. 0 libavcodec 52.123. 0 / 52.123. 0 libavformat 52.111. 0 / 52.111. 0 libavdevice 52. 5. 0 / 52. 5. 0 libavfilter 1. 80. 0 / 1. 80. 0 libswscale 0. 14. 1 / 0. 14. 1 libpostproc 51. 2. 0 / 51. 2. 0 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/standort_aquarium.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp423gp4isom creation_time : 2013-04-19 15:04:05 Duration: 00:00:18.24, start: 0.000000, bitrate: 2095 kb/s Stream #0.0(und): Video: mpeg4, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 2001 kb/s, 14.97 fps, 30k tbr, 30k tbn, 30k tbc Metadata: creation_time : 2013-04-19 15:04:05 Stream #0.1(und): Audio: aac, 48000 Hz, mono, s16, 96 kb/s Metadata: creation_time : 2013-04-19 15:04:05 File 'output.mp4' already exists. Overwrite ? [y/N] y [buffer @ 0x132e820] w:640 h:480 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_param: [libx264 @ 0x1325de0] Default settings detected, using medium profile [libx264 @ 0x1325de0] using SAR=1/1 [libx264 @ 0x1325de0] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 [libx264 @ 0x1325de0] profile High, level 3.0 [libx264 @ 0x1325de0] 264 - core 118 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'output.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp423gp4isom creation_time : 2013-04-19 15:04:05 encoder : Lavf52.111.0 Stream #0.0(und): Video: libx264, yuv420p, 640x480 [PAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 30k tbn, 29.97 tbc Metadata: creation_time : 2013-04-19 15:04:05 Stream #0.1(und): Audio: libfaac, 48000 Hz, mono, s16, 64 kb/s Metadata: creation_time : 2013-04-19 15:04:05 Stream mapping: Stream #0.0 -> #0.0 Stream #0.1 -> #0.1 Press [q] to stop, [?] for help frame= 542 fps= 36 q=29.0 Lsize= 2059kB time=00:00:18.01 bitrate= 936.3kbits/s dup=270 drop=0 video:1904kB audio:143kB global headers:0kB muxing overhead 0.609224% frame I:3 Avg QP:22.39 size: 14773 [libx264 @ 0x1325de0] frame P:514 Avg QP:23.98 size: 3675 [libx264 @ 0x1325de0] frame B:25 Avg QP:27.44 size: 643 [libx264 @ 0x1325de0] consecutive B-frames: 93.7% 0.0% 1.1% 5.2% [libx264 @ 0x1325de0] mb I I16..4: 16.4% 78.3% 5.3% [libx264 @ 0x1325de0] mb P I16..4: 1.6% 6.3% 0.3% P16..4: 30.8% 8.6% 3.1% 0.0% 0.0% skip:49.4% [libx264 @ 0x1325de0] mb B I16..4: 0.4% 0.7% 0.0% B16..8: 13.2% 1.6% 0.2% direct: 0.3% skip:83.6% L0:50.0% L1:47.1% BI: 2.9% [libx264 @ 0x1325de0] 8x8 transform intra:77.1% inter:83.1% [libx264 @ 0x1325de0] coded y,uvDC,uvAC intra: 62.0% 76.4% 24.4% inter: 17.9% 26.3% 2.3% [libx264 @ 0x1325de0] i16 v,h,dc,p: 14% 60% 13% 13% [libx264 @ 0x1325de0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 35% 33% 2% 3% 3% 3% 3% 4% [libx264 @ 0x1325de0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 40% 12% 4% 7% 7% 7% 5% 4% [libx264 @ 0x1325de0] i8c dc,h,v,p: 46% 34% 16% 4% [libx264 @ 0x1325de0] Weighted P-Frames: Y:8.0% UV:4.5% [libx264 @ 0x1325de0] ref P L0: 65.6% 16.7% 8.8% 7.9% 0.9% [libx264 @ 0x1325de0] ref B L0: 85.9% 13.3% 0.8% [libx264 @ 0x1325de0] ref B L1: 88.7% 11.3% [libx264 @ 0x1325de0] kb/s:862.28
The video source is temporarily available under: https://www.dropbox.com/s/4xg147z77u40g87/standort_aquarium.mp4