[FFmpeg-trac] #3811(undetermined:new): Misleading error when segmenting H.264 bitstream to MPEG-TS with wrong segment muxer
FFmpeg
trac at avcodec.org
Tue Jul 29 10:48:17 CEST 2014
#3811: Misleading error when segmenting H.264 bitstream to MPEG-TS with wrong
segment muxer
-------------------------------------+-------------------------------------
Reporter: slhck | Type: defect
Status: new | Priority: normal
Component: | Version: git-
undetermined | master
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
I was trying to segment an existing H.264/MP4 file into TS segments:
{{{
ffmpeg -y -i tmp/tmpPass2.mp4 -c:v libx264 -acodec copy -map 0 -f
segment -bsf h264_mp4toannexb -segment_time 5 -segment_format mpegts
./tsSegmentsDisplay/SRC04_Q1_%05d.ts
ffmpeg version N-64919-ga613257 Copyright (c) 2000-2014 the FFmpeg
developers
built on Jul 23 2014 00:35:22 with gcc 4.8.3 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r
--enable-gnutls --enable-iconv --enable-libass --enable-libbluray
--enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme
--enable-libgsm --enable-libilbc --enable-libmodplug
--enable-libmp3lame --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus
--enable-librtmp --enable-libschroedinger --enable-libsoxr
--enable-libspeex --enable-libtheora --enable-libtwolame
--enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc
--enable-libvorbis --enable-libvpx --enable-libwavpack
--enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs
--enable-libxvid --enable-decklink --enable-zlib
libavutil 52. 92.101 / 52. 92.101
libavcodec 55. 69.100 / 55. 69.100
libavformat 55. 48.101 / 55. 48.101
libavdevice 55. 13.102 / 55. 13.102
libavfilter 4. 11.102 / 4. 11.102
libswscale 2. 6.100 / 2. 6.100
libswresample 0. 19.100 / 0. 19.100
libpostproc 52. 3.100 / 52. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'tmp/tmpPass2.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf55.33.100
Duration: 00:00:56.66, start: 0.161134, bitrate: 8528 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p,
1920x1080 [SAR 1:1 DAR 16:9], 8484 kb/s, 24 fps, 24 tbr, 12288 tbn, 48
tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz,
stereo, fltp, 64 kb/s (default)
Metadata:
handler_name : SoundHandler
[libx264 @ 0000000004db87a0] using SAR=1/1
[libx264 @ 0000000004db87a0] using cpu capabilities: MMX2 SSE2Fast
SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
[libx264 @ 0000000004db87a0] profile High, level 4.0
[libx264 @ 0000000004db87a0] 264 - core 142 r2431 ac76440 -
H.264/MPEG-4 AVC codec - Copyleft 2003-2014 -
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=12
lookahead_threads=2 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=24 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
[mpegts @ 0000000006f42440] Using AVStream.codec.time_base as a
timebase hint to the muxer is deprecated. Set AVStream.time_base
instead.
Last message repeated 1 times
[adts @ 0000000006f567e0] Using AVStream.codec.time_base as a timebase
hint to the muxer is deprecated. Set AVStream.time_base instead.
Output #0, segment, to './tsSegmentsDisplay/SRC04_Q1_%05d.ts':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf55.48.101
Stream #0:0(und): Video: h264 (libx264), yuv420p, 1920x1080 [SAR
1:1 DAR 16:9], q=-1--1, 24 fps, 24 tbn, 24 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : Lavc55.69.100 libx264
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz,
stereo, 64 kb/s (default)
Metadata:
handler_name : SoundHandler
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[libx264 @ 0000000004db8340] Packet header is not contained in global
extradata, corrupted stream or invalid MP4/AVCC bitstream
Failed to open bitstream filter h264_mp4toannexb for stream 0 with
codec libx264: Invalid argument
[mpegts @ 0000000006f42440] H.264 bitstream malformed, no startcode
found, use the h264_mp4toannexb bitstream filter (-bsf
h264_mp4toannexb)
av_interleaved_write_frame(): Invalid argument
frame= 57 fps= 33 q=-1.0 Lsize=N/A time=00:00:02.69 bitrate=N/A dup=4
drop=0
video:201kB audio:21kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: unknown
[libx264 @ 0000000004db87a0] frame I:1 Avg QP:19.95 size:204698
[libx264 @ 0000000004db87a0] frame P:19 Avg QP:21.95 size: 42957
[libx264 @ 0000000004db87a0] frame B:37 Avg QP:26.12 size: 9696
[libx264 @ 0000000004db87a0] consecutive B-frames: 3.5% 7.0% 68.4% 21.1%
[libx264 @ 0000000004db87a0] mb I I16..4: 36.5% 18.1% 45.4%
[libx264 @ 0000000004db87a0] mb P I16..4: 7.0% 6.7% 1.7% P16..4:
32.9% 13.2% 7.7% 0.0% 0.0% skip:30.7%
[libx264 @ 0000000004db87a0] mb B I16..4: 0.9% 1.2% 0.1% B16..8:
38.4% 3.9% 0.5% direct: 1.3% skip:53.7% L0:46.9% L1:44.3% BI:
8.9%
[libx264 @ 0000000004db87a0] 8x8 transform intra:40.2% inter:58.4%
[libx264 @ 0000000004db87a0] coded y,uvDC,uvAC intra: 33.5% 48.0%
23.3% inter: 11.4% 13.0% 1.2%
[libx264 @ 0000000004db87a0] i16 v,h,dc,p: 33% 29% 19% 19%
[libx264 @ 0000000004db87a0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 40% 19%
36% 1% 1% 1% 1% 1% 1%
[libx264 @ 0000000004db87a0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 42% 34%
11% 2% 2% 2% 3% 2% 3%
[libx264 @ 0000000004db87a0] i8c dc,h,v,p: 48% 23% 25% 4%
[libx264 @ 0000000004db87a0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0000000004db87a0] ref P L0: 76.1% 14.4% 6.4% 3.1%
[libx264 @ 0000000004db87a0] ref B L0: 86.1% 11.9% 2.0%
[libx264 @ 0000000004db87a0] ref B L1: 86.7% 13.3%
[libx264 @ 0000000004db87a0] kb/s:4647.21
Conversion failed!
}}}
It tells me:
{{{
[libx264 @ 0000000004db8340] Packet header is not contained in global
extradata, corrupted stream or invalid MP4/AVCC bitstream
Failed to open bitstream filter h264_mp4toannexb for stream 0 with
codec libx264: Invalid argument
[mpegts @ 0000000006f42440] H.264 bitstream malformed, no startcode
found, use the h264_mp4toannexb bitstream filter (-bsf
h264_mp4toannexb)
}}}
But I'm already using said bitstream filter, which it can't open.
In this case, the real solution would've been to use the ssegment muxer
instead of segment, but this is absolutely not obvious from the error
messages.
There should be a hint to use another muxer when using .ts segments and
H.264 bitstreams. The current error messages are misleading.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/3811>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list