[FFmpeg-trac] #6191(undetermined:new): DASH decoding stream in segment fails
FFmpeg
trac at avcodec.org
Sat Feb 25 15:58:23 EET 2017
#6191: DASH decoding stream in segment fails
-------------------------------------+-------------------------------------
Reporter: derrod | Type: defect
Status: new | Priority: minor
Component: | Version: git-
undetermined | master
Keywords: dash, mpeg- | Blocked By:
dash | Reproduced by developer: 0
Blocking: |
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
'''Summary of the bug:''' trying to convert or play back DASH segments as
generated by YouTube Live under certain circumstances fails. Older
versions (pre-Oct. 2015) did read and convert the file seemingly
correctly. It seems that a change between
5911eeb033c384ba0842f7e2e11d737f1d479dd9 and
1e7e4f13f95227d79bc8ab9a2167f02f7a3e063f has introduced this issue (tested
by checking several zeranoe ffmpeg builds).
When looking at the segment in http://mp4parser.com/ it seems like there
is a sidx/moof/mdat box for each individual frame instead of the entire
segment like with segments that work fine in ffmpeg.
This does only seem to happen if the ingested video is not 30/60 fps. In
my test the ingested video was 25 fps and the "low latency" mode in the
control panel is enabled.
'''How to reproduce:''' Download a video segment of a youtube livestream
and use it as input for ffprobe or ffmpeg. I will attach the video segment
used for creating the log output below.
----
Recent zeranoe ffmpeg build (ffmpeg-20170223-dcd3418-win64-static)
{{{
% ffmpeg -i testsegment.mp4 -c copy out.mp4
ffmpeg version N-83622-gdcd3418 Copyright (c) 2000-2017 the FFmpeg
developers
built with gcc 5.4.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-cuda --enable-
cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc
--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-libopenh264
--enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy
--enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame
--enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-
libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-
libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma
--enable-zlib
libavutil 55. 47.100 / 55. 47.100
libavcodec 57. 81.100 / 57. 81.100
libavformat 57. 66.102 / 57. 66.102
libavdevice 57. 2.100 / 57. 2.100
libavfilter 6. 73.100 / 6. 73.100
libswscale 4. 3.101 / 4. 3.101
libswresample 2. 4.100 / 2. 4.100
libpostproc 54. 2.100 / 54. 2.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000007b6720] decoding for stream 0 failed
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'testsegment.mp4':
Metadata:
major_brand : dash
minor_version : 0
compatible_brands: iso6avc1mp41
creation_time : 2017-02-25T13:23:08.000000Z
Duration: 00:00:00.03, start: 0.000000, bitrate: 3996 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv,
bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 1458 kb/s, 30 fps, 30
tbr, 90k tbn, 60 tbc (default)
Metadata:
creation_time : 2017-02-25T13:23:08.000000Z
handler_name : VideoHandler
Output #0, mp4, to 'out.mp4':
Metadata:
major_brand : dash
minor_version : 0
compatible_brands: iso6avc1mp41
encoder : Lavf57.66.102
Stream #0:0(und): Video: h264 (Main) ([33][0][0][0] / 0x0021),
yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 1458
kb/s, 30 fps, 30 tbr, 90k tbn, 90k tbc (default)
Metadata:
creation_time : 2017-02-25T13:23:08.000000Z
handler_name : VideoHandler
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
frame= 0 fps=0.0 q=-1.0 Lsize= 0kB time=00:00:00.00 bitrate=N/A
speed= 0x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
}}}
----
Older zeranoe ffmpeg windows build (ffmpeg-20151008-git-5911eeb-
win64-static):
{{{
% old_ffmpeg -i testsegment.mp4 -c copy out.mp4
ffmpeg version N-75841-g5911eeb Copyright (c) 2000-2015 the FFmpeg
developers
built with gcc 5.2.0 (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-libdcadec --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-lzma --enable-decklink --enable-zlib
libavutil 55. 2.100 / 55. 2.100
libavcodec 57. 4.100 / 57. 4.100
libavformat 57. 3.100 / 57. 3.100
libavdevice 57. 0.100 / 57. 0.100
libavfilter 6. 10.100 / 6. 10.100
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.100 / 2. 0.100
libpostproc 54. 0.100 / 54. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'testsegment.mp4':
Metadata:
major_brand : dash
minor_version : 0
compatible_brands: iso6avc1mp41
creation_time : 2017-02-25 13:23:08
Duration: 00:00:04.00, start: 2.000000, bitrate: 33 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv,
bt709), 1280x720 [SAR 1:1 DAR 16:9], 12 kb/s, 30 fps, 30 tbr, 90k tbn, 60
tbc (default)
Metadata:
creation_time : 2017-02-25 13:23:08
handler_name : VideoHandler
[mp4 @ 000002010b66f420] Codec for stream 0 does not use global headers
but container format requires global headers
Output #0, mp4, to 'out.mp4':
Metadata:
major_brand : dash
minor_version : 0
compatible_brands: iso6avc1mp41
encoder : Lavf57.3.100
Stream #0:0(und): Video: h264 ([33][0][0][0] / 0x0021), yuv420p,
1280x720 [SAR 1:1 DAR 16:9], q=2-31, 12 kb/s, 30 fps, 30 tbr, 90k tbn, 90k
tbc (default)
Metadata:
creation_time : 2017-02-25 13:23:08
handler_name : VideoHandler
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
frame= 60 fps=0.0 q=-1.0 Lsize= 7kB time=00:00:01.96 bitrate=
29.2kbits/s
video:6kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 17.289797%
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/6191>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list