Opened 12 years ago
Last modified 12 years ago
#2173 new defect
m2ts made by ffmpeg isn't playbacked with panasonic hdd recoder with some of x264 options
Reported by: | bonconboy | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | git-master | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
m2ts made by ffmpeg cannot well be playbacked with panasonic hdd recoder if -x264opts vbv-maxrate=12000:vbv-bufsize=12000:nal-hrd=vbr is added. stop, playback, and black screen are repeated in movie. Sometimes, movie cannot be playbacked at all.
Sound is correctly playbacked.
On the other hand, a m2ts files made without it by ffmpeg are smoothly playbacked with panasonic hdd recoder.
My step
Step 1
Making m2ts files by ffmpeg
Step 2
Converting the files to AVCHD by multiAVCHD, which uses tsMuxR.
Step3
Playbaking the AVCHD with Panansonic HDD recorder
source is DmC: Devil May Cry - Mission 9 EXCLUSIVE Gameplay - Eurogamer
making console with -x264opts vbv-maxrate=12000:vbv-bufsize=12000:nal-hrd=vbr
ffmpeg -i input.mp4 -t 15 -vf "fifo, scale= 720:480" -vcodec libx264 -x264opts vbv-maxrate=12000:vbv-bufsize=12000:nal-hrd=vbr -aspect 16:9 -r 29.97 -acodec ac3 -ac 2 -ar 48000 -ab 96000 output_ffmpeg_nal_m2ts.m2ts ffmpeg version 1.0.git-5a2f3f0 Copyright (c) 2000-2013 the FFmpeg developers built on Jan 2 2013 18:09:20 with gcc 4.7.2 (MacPorts gcc47 4.7.2_2) configuration: --prefix=/sw --cc=gcc-mp-4.7 --cxx=g++-mp-4.7 --extra-cflags='-mtune=native -mno-avx -mfpmath=sse -msse4.2' --extra-cxxflags='-mtune=native -mno-avx -mfpmath=sse -msse4.2' --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-libfaac --enable-libopenjpeg --enable-libschroedinger --enable-libmodplug --enable-libxvid --enable-libfreetype --enable-openssl --enable-avfilter --enable-filters --arch=x86_64 --cpu=corei7-avx --enable-libass --enable-libbluray --enable-libopencore_amrwb --enable-libopencore_amrnb libavutil 52. 13.100 / 52. 13.100 libavcodec 54. 85.100 / 54. 85.100 libavformat 54. 59.100 / 54. 59.100 libavdevice 54. 3.102 / 54. 3.102 libavfilter 3. 30.102 / 3. 30.102 libswscale 2. 1.103 / 2. 1.103 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 creation_time : 2013-01-02 11:53:23 Duration: 00:04:11.16, start: 0.000000, bitrate: 5772 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 5578 kb/s, 25 fps, 25 tbr, 50 tbn, 50 tbc Metadata: creation_time : 1970-01-01 00:00:00 handler_name : VideoHandler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 192 kb/s Metadata: creation_time : 2013-01-02 11:53:24 handler_name : IsoMedia File Produced by Google, 5-11-2011 [libx264 @ 0x102873000] using SAR=32/27 [libx264 @ 0x102873000] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX [libx264 @ 0x102873000] profile High, level 3.0 Output #0, mpegts, to 'output_ffmpeg_nal_m2ts.m2ts': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 encoder : Lavf54.59.100 Stream #0:0(und): Video: h264, yuv420p, 720x480 [SAR 32:27 DAR 16:9], q=-1--1, 90k tbn, 29.97 tbc Metadata: creation_time : 1970-01-01 00:00:00 handler_name : VideoHandler Stream #0:1(und): Audio: ac3, 48000 Hz, stereo, fltp, 96 kb/s Metadata: creation_time : 2013-01-02 11:53:24 handler_name : IsoMedia File Produced by Google, 5-11-2011 Stream mapping: Stream #0:0 -> #0:0 (h264 -> libx264) Stream #0:1 -> #0:1 (aac -> ac3) Press [q] to stop, [?] for help frame= 78 fps=0.0 q=29.0 size= 55kB time=00:00:02.84 bitrate= 157.8kbits/frame= 147 fps=147 q=29.0 size= 268kB time=00:00:04.89 bitrate= 448.8kbits/frame= 211 fps=140 q=29.0 size= 488kB time=00:00:07.32 bitrate= 545.6kbits/frame= 278 fps=138 q=29.0 size= 670kB time=00:00:09.27 bitrate= 591.9kbits/frame= 331 fps=131 q=29.0 size= 993kB time=00:00:11.22 bitrate= 724.6kbits/frame= 373 fps=123 q=29.0 size= 1347kB time=00:00:12.66 bitrate= 871.2kbits/frame= 424 fps=120 q=29.0 size= 1704kB time=00:00:14.61 bitrate= 955.1kbits/frame= 450 fps=110 q=-1.0 Lsize= 2214kB time=00:00:15.00 bitrate=1208.8kbits/s dup=75 drop=0 video:1775kB audio:176kB subtitle:0 global headers:0kB muxing overhead 13.458446% [libx264 @ 0x102873000] frame I:10 Avg QP:21.48 size: 15072 [libx264 @ 0x102873000] frame P:295 Avg QP:23.69 size: 4993 [libx264 @ 0x102873000] frame B:145 Avg QP:25.64 size: 1340 [libx264 @ 0x102873000] consecutive B-frames: 40.7% 48.0% 3.3% 8.0% [libx264 @ 0x102873000] mb I I16..4: 17.6% 67.6% 14.7% [libx264 @ 0x102873000] mb P I16..4: 5.7% 12.8% 1.4% P16..4: 31.9% 9.3% 4.0% 0.0% 0.0% skip:34.8% [libx264 @ 0x102873000] mb B I16..4: 0.2% 0.3% 0.1% B16..8: 25.6% 3.7% 0.7% direct: 1.7% skip:67.6% L0:30.1% L1:64.4% BI: 5.5% [libx264 @ 0x102873000] 8x8 transform intra:64.7% inter:77.3% [libx264 @ 0x102873000] coded y,uvDC,uvAC intra: 42.7% 60.7% 18.1% inter: 14.1% 20.1% 0.8% [libx264 @ 0x102873000] i16 v,h,dc,p: 35% 30% 6% 29% [libx264 @ 0x102873000] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 22% 22% 4% 6% 6% 7% 5% 4% [libx264 @ 0x102873000] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 22% 13% 4% 8% 8% 8% 5% 3% [libx264 @ 0x102873000] i8c dc,h,v,p: 56% 21% 18% 5% [libx264 @ 0x102873000] Weighted P-Frames: Y:12.5% UV:8.8% [libx264 @ 0x102873000] ref P L0: 65.7% 18.3% 11.5% 4.2% 0.3% [libx264 @ 0x102873000] ref B L0: 87.6% 12.4% 0.0% [libx264 @ 0x102873000] ref B L1: 99.7% 0.3% [libx264 @ 0x102873000] kb/s:968.60
ffmpeg -i console with -x264opts vbv-maxrate=12000:vbv-bufsize=12000:nal-hrd=vbr
ffmpeg -i output_ffmpeg_nal_m2ts.m2ts ffmpeg version 1.0.git-5a2f3f0 Copyright (c) 2000-2013 the FFmpeg developers built on Jan 2 2013 18:09:20 with gcc 4.7.2 (MacPorts gcc47 4.7.2_2) configuration: --prefix=/sw --cc=gcc-mp-4.7 --cxx=g++-mp-4.7 --extra-cflags='-mtune=native -mno-avx -mfpmath=sse -msse4.2' --extra-cxxflags='-mtune=native -mno-avx -mfpmath=sse -msse4.2' --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-libfaac --enable-libopenjpeg --enable-libschroedinger --enable-libmodplug --enable-libxvid --enable-libfreetype --enable-openssl --enable-avfilter --enable-filters --arch=x86_64 --cpu=corei7-avx --enable-libass --enable-libbluray --enable-libopencore_amrwb --enable-libopencore_amrnb libavutil 52. 13.100 / 52. 13.100 libavcodec 54. 85.100 / 54. 85.100 libavformat 54. 59.100 / 54. 59.100 libavdevice 54. 3.102 / 54. 3.102 libavfilter 3. 30.102 / 3. 30.102 libswscale 2. 1.103 / 2. 1.103 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 [mpegts @ 0x10280ec00] max_analyze_duration 5000000 reached at 5005000 Input #0, mpegts, from 'output_ffmpeg_nal_m2ts.m2ts': Duration: 00:00:15.05, start: 1.333289, bitrate: 1205 kb/s Program 1 Metadata: service_name : Service01 service_provider: FFmpeg Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 720x480 [SAR 32:27 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc Stream #0:1[0x101](und): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 96 kb/s At least one output file must be specified
making console without -x264opts vbv-maxrate=12000:vbv-bufsize=12000:nal-hrd=vbr
ffmpeg -i input.mp4 -t 15 -vf "fifo, scale= 720:480" -vcodec libx264 -aspect 16:9 -r 29.97 -acodec ac3 -ac 2 -ar 48000 -ab 96000 output_ffmpeg_m2ts.m2ts ffmpeg version 1.0.git-5a2f3f0 Copyright (c) 2000-2013 the FFmpeg developers built on Jan 2 2013 18:09:20 with gcc 4.7.2 (MacPorts gcc47 4.7.2_2) configuration: --prefix=/sw --cc=gcc-mp-4.7 --cxx=g++-mp-4.7 --extra-cflags='-mtune=native -mno-avx -mfpmath=sse -msse4.2' --extra-cxxflags='-mtune=native -mno-avx -mfpmath=sse -msse4.2' --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-libfaac --enable-libopenjpeg --enable-libschroedinger --enable-libmodplug --enable-libxvid --enable-libfreetype --enable-openssl --enable-avfilter --enable-filters --arch=x86_64 --cpu=corei7-avx --enable-libass --enable-libbluray --enable-libopencore_amrwb --enable-libopencore_amrnb libavutil 52. 13.100 / 52. 13.100 libavcodec 54. 85.100 / 54. 85.100 libavformat 54. 59.100 / 54. 59.100 libavdevice 54. 3.102 / 54. 3.102 libavfilter 3. 30.102 / 3. 30.102 libswscale 2. 1.103 / 2. 1.103 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 creation_time : 2013-01-02 11:53:23 Duration: 00:04:11.16, start: 0.000000, bitrate: 5772 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 5578 kb/s, 25 fps, 25 tbr, 50 tbn, 50 tbc Metadata: creation_time : 1970-01-01 00:00:00 handler_name : VideoHandler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 192 kb/s Metadata: creation_time : 2013-01-02 11:53:24 handler_name : IsoMedia File Produced by Google, 5-11-2011 [libx264 @ 0x102873000] using SAR=32/27 [libx264 @ 0x102873000] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX [libx264 @ 0x102873000] profile High, level 3.0 Output #0, mpegts, to 'output_ffmpeg_m2ts.m2ts': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 encoder : Lavf54.59.100 Stream #0:0(und): Video: h264, yuv420p, 720x480 [SAR 32:27 DAR 16:9], q=-1--1, 90k tbn, 29.97 tbc Metadata: creation_time : 1970-01-01 00:00:00 handler_name : VideoHandler Stream #0:1(und): Audio: ac3, 48000 Hz, stereo, fltp, 96 kb/s Metadata: creation_time : 2013-01-02 11:53:24 handler_name : IsoMedia File Produced by Google, 5-11-2011 Stream mapping: Stream #0:0 -> #0:0 (h264 -> libx264) Stream #0:1 -> #0:1 (aac -> ac3) Press [q] to stop, [?] for help frame= 80 fps=0.0 q=29.0 size= 61kB time=00:00:02.93 bitrate= 169.9kbits/frame= 148 fps=147 q=29.0 size= 269kB time=00:00:04.89 bitrate= 450.4kbits/frame= 214 fps=142 q=29.0 size= 498kB time=00:00:07.32 bitrate= 557.3kbits/frame= 282 fps=140 q=29.0 size= 695kB time=00:00:09.75 bitrate= 584.0kbits/frame= 335 fps=133 q=29.0 size= 1020kB time=00:00:11.22 bitrate= 744.3kbits/frame= 377 fps=125 q=26.0 size= 1362kB time=00:00:12.66 bitrate= 880.9kbits/frame= 428 fps=121 q=29.0 size= 1720kB time=00:00:14.61 bitrate= 964.0kbits/frame= 450 fps=111 q=-1.0 Lsize= 2207kB time=00:00:15.00 bitrate=1205.3kbits/s dup=75 drop=0 video:1771kB audio:176kB subtitle:0 global headers:0kB muxing overhead 13.398644% [libx264 @ 0x102873000] frame I:10 Avg QP:21.48 size: 15034 [libx264 @ 0x102873000] frame P:295 Avg QP:23.69 size: 4984 [libx264 @ 0x102873000] frame B:145 Avg QP:25.69 size: 1329 [libx264 @ 0x102873000] consecutive B-frames: 40.7% 48.0% 3.3% 8.0% [libx264 @ 0x102873000] mb I I16..4: 17.6% 67.6% 14.7% [libx264 @ 0x102873000] mb P I16..4: 5.7% 12.9% 1.4% P16..4: 31.8% 9.3% 4.0% 0.0% 0.0% skip:34.8% [libx264 @ 0x102873000] mb B I16..4: 0.2% 0.3% 0.1% B16..8: 25.6% 3.7% 0.7% direct: 1.7% skip:67.6% L0:30.1% L1:64.4% BI: 5.5% [libx264 @ 0x102873000] 8x8 transform intra:64.7% inter:77.3% [libx264 @ 0x102873000] coded y,uvDC,uvAC intra: 42.7% 60.8% 18.1% inter: 14.1% 20.1% 0.8% [libx264 @ 0x102873000] i16 v,h,dc,p: 35% 30% 6% 30% [libx264 @ 0x102873000] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 22% 22% 4% 6% 6% 7% 5% 4% [libx264 @ 0x102873000] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 22% 13% 4% 8% 8% 8% 5% 3% [libx264 @ 0x102873000] i8c dc,h,v,p: 56% 21% 18% 5% [libx264 @ 0x102873000] Weighted P-Frames: Y:12.5% UV:8.8% [libx264 @ 0x102873000] ref P L0: 65.6% 18.3% 11.6% 4.2% 0.3% [libx264 @ 0x102873000] ref B L0: 87.7% 12.3% 0.0% [libx264 @ 0x102873000] ref B L1: 99.7% 0.3% [libx264 @ 0x102873000] kb/s:966.09
ffmpeg -i console without -x264opts vbv-maxrate=12000:vbv-bufsize=12000:nal-hrd=vbr
ffmpeg -i output_ffmpeg_m2ts.m2ts ffmpeg version 1.0.git-5a2f3f0 Copyright (c) 2000-2013 the FFmpeg developers built on Jan 2 2013 18:09:20 with gcc 4.7.2 (MacPorts gcc47 4.7.2_2) configuration: --prefix=/sw --cc=gcc-mp-4.7 --cxx=g++-mp-4.7 --extra-cflags='-mtune=native -mno-avx -mfpmath=sse -msse4.2' --extra-cxxflags='-mtune=native -mno-avx -mfpmath=sse -msse4.2' --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-libfaac --enable-libopenjpeg --enable-libschroedinger --enable-libmodplug --enable-libxvid --enable-libfreetype --enable-openssl --enable-avfilter --enable-filters --arch=x86_64 --cpu=corei7-avx --enable-libass --enable-libbluray --enable-libopencore_amrwb --enable-libopencore_amrnb libavutil 52. 13.100 / 52. 13.100 libavcodec 54. 85.100 / 54. 85.100 libavformat 54. 59.100 / 54. 59.100 libavdevice 54. 3.102 / 54. 3.102 libavfilter 3. 30.102 / 3. 30.102 libswscale 2. 1.103 / 2. 1.103 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 [mpegts @ 0x10280ec00] max_analyze_duration 5000000 reached at 5005000 Input #0, mpegts, from 'output_ffmpeg_m2ts.m2ts': Duration: 00:00:14.99, start: 1.394667, bitrate: 1206 kb/s Program 1 Metadata: service_name : Service01 service_provider: FFmpeg Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 720x480 [SAR 32:27 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc Stream #0:1[0x101](und): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 96 kb/s At least one output file must be specified
Attachments (2)
Change History (4)
by , 12 years ago
Attachment: | output_ffmpeg_nal_m2ts.m2ts added |
---|
by , 12 years ago
Attachment: | output_ffmpeg_m2ts.m2ts added |
---|
without -x264opts vbv-maxrate=12000:vbv-bufsize=12000:nal-hrd=vbr
follow-up: 2 comment:1 by , 12 years ago
Component: | FFmpeg → undetermined |
---|
Sorry, I again do not understand the ticket;-(
Why do you want to use "vbv-maxrate=12000:vbv-bufsize=12000:nal-hrd=vbr"?
Or in other words: If it works fine without, why do you believe there is a bug?
And if you can answer the two questions:
Do any of the following (untested) x264 options make a difference (does it work for some but not for others)?
"vbv-maxrate=12000:vbv-bufsize=12000"
"vbv-maxrate=12000:nal-hrd=vbr"
"vbv-bufsize=12000:nal-hrd=vbr"
comment:2 by , 12 years ago
Replying to cehoyos:
Sorry, I again do not understand the ticket;-(
Please don't mind. Probably my explanation is not enough.
Why do you want to use "vbv-maxrate=12000:vbv-bufsize=12000:nal-hrd=vbr"?
In general, nal-hrd=vbr enhances the conmpatibity of a video stream.
And blu-ray needs nal-hrd=vbr. Many AVCHD reproduction equipment, too.
https://sites.google.com/site/x264bluray/home
http://forum.doom9.org/showthread.php?t=154533
http://mailman.videolan.org/pipermail/x264-devel/2010-March/007049.html
an example in x264(r1480)
x264 --crf 16 --preset veryslow --tune film --weightp 0 --bframes 3 --nal-hrd vbr --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 24 --b-pyramid strict --slices 4 --aud --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 -o
"bluray-compat" of x264 option forces the number of bframe, bpyramid(=normal or strict), weightp(0 or 1), aud=1、and nal-hrd=vbr. Of course, even when using "vbv-maxrate=12000:vbv-bufsize=12000:bluray-compat", the above problem appears.
Or in other words: If it works fine without, why do you believe there is a bug?
When using "vbv-maxrate=12000:vbv-bufsize=12000:nal-hrd=vbr" with handbrake to make mkv or mp4 for converting to AVCHD, no problem.
And I understand nal is addressed in libavformat/avc.c in ffmpeg.
And if you can answer the two questions:
Do any of the following (untested) x264 options make a difference (does it work for some but not for others)?
"vbv-maxrate=12000:vbv-bufsize=12000"
No problem. x264 addresses vbv-maxrate and vbv-bufsize, independent of nal, though both are the parameter of nal.
"vbv-maxrate=12000:nal-hrd=vbr"
"vbv-bufsize=12000:nal-hrd=vbr"
x264 ignore these because nal needs vbv-maxrate and vbv-bufsize.
If you need files and console, I will upload them.
But I cannot identify a cause and if nal is a cause for the above.
Now what I can do is to report facts.
my understanding nal. If wrong, please pointing out.
Nal unit consists of VCL(Video Coding Layer) and non-VCL.
VCL-NAL unit is slice data.
Non-VCL-NAL units are
SEI(Supplemental Enhancement Information)
SPS(Sequence Parameter Set)
PPS(Picture Parameter Set)
AUD(Access Unit Delimiter)
Filler data(since x264 r1480, when using --nal-hrd=cbr)
SEI-NAL can includes some SEI messages
Buffering period
Picture timing
User data registered by ITU-T Recommendation T.35
User data unregistered(the enode settings in x264)
Recovery point(including broken_link_flag)
and so on. omit them because x264 don't use them
SPS is basic information of decoding stream
profile_idc
level_idc
num_ref_frames
pic_width_in_mbs_minus1
pic_height_in_map_units_minus1
frame_mbs_only_flag
mb_adaptive_frame_field_flag(MBAFF)
direct_8x8_inference_flag
frame_cropping_flag
VUI(Video Usability Information)
and so on. omit them
PPS is necessary information for decoing each picture(frame)
entropy_coding_mode_flag(CAVLC/CABAC)
weighted_pred_flag(weightp)
weighted_bipred_flag(weightb)
pic_init_qp_minus26(QP)
chroma_qp_index_offset
deblocking_filter_control_present_flag
constrained_intra_pred_flag
slice and picture corresponding infomation
and so on. omit them
AUD(Access Unit Delimiter)
The order of NAL unit is important, eg、AUD, SPS, PPS, SEI…..
with -x264opts vbv-maxrate=12000:vbv-bufsize=12000:nal-hrd=vbr