Opened 9 years ago
Closed 9 years ago
#5216 closed defect (fixed)
"could not find corresponding track id 1" for DASH video from Kaltura.com
Reported by: | yan12125 | Owned by: | |
---|---|---|---|
Priority: | important | Component: | avformat |
Version: | git-master | Keywords: | mov regression |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
Summary of the bug:
ffprobe fails with the attached file. All further actions, including using ffmpeg for conversion, fails with the same error message, too.
Seems the problem exists since http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=4ab56667594842283dc5ae07f0daba2a2cb4d3af. avprobe/avconv works fine as Libav does not include this commit.
How to reproduce:
$ LD_LIBRARY_PATH=~/tmp/FFmpeg/libavdevice:~/tmp/FFmpeg/libavfilter:~/tmp/FFmpeg/libavformat:~/tmp/FFmpeg/libavcodec:~/tmp/FFmpeg/libavresample:~/tmp/FFmpeg/libpostproc:~/tmp/FFmpeg/libswresample:~/tmp/FFmpeg/libswscale:~/tmp/FFmpeg/libavutil ~/tmp/FFmpeg/ffprobe_g -loglevel trace Straight\ from\ the\ Heart-1_1jc2y3e4.ff4-v1.unknown_video ffprobe version N-78269-gc1b23e1 Copyright (c) 2007-2016 the FFmpeg developers built with gcc 5.3.0 (GCC) configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libdcadec --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-shared --enable-version3 --enable-x11grab libavutil 55. 17.100 / 55. 17.100 libavcodec 57. 24.101 / 57. 24.101 libavformat 57. 24.100 / 57. 24.100 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 28.100 / 6. 28.100 libavresample 3. 0. 0 / 3. 0. 0 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 [file @ 0x25cdf00] Setting default whitelist 'file' Probing mov,mp4,m4a,3gp,3g2,mj2 score:100 size:2048 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 70797466 'ftyp' parent:'root' sz: 24 8 45867145 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] ISO: File Type Major Brand: isom [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 766f6f6d 'moov' parent:'root' sz: 628 32 45867145 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 6468766d 'mvhd' parent:'moov' sz: 108 8 620 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] time scale = 1000 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 7865766d 'mvex' parent:'moov' sz: 40 116 620 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 78657274 'trex' parent:'mvex' sz: 32 8 32 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 6b617274 'trak' parent:'moov' sz: 472 156 620 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 64686b74 'tkhd' parent:'trak' sz: 92 8 464 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 6169646d 'mdia' parent:'trak' sz: 372 100 464 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 6468646d 'mdhd' parent:'mdia' sz: 32 8 364 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 726c6468 'hdlr' parent:'mdia' sz: 45 40 364 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] ctype= (0x00000000) [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] stype= vide [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 666e696d 'minf' parent:'mdia' sz: 287 85 364 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 64686d76 'vmhd' parent:'minf' sz: 20 8 279 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 666e6964 'dinf' parent:'minf' sz: 36 28 279 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 66657264 'dref' parent:'dinf' sz: 28 8 28 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type url size 12 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] Unknown dref type 0x08206c7275 size 12 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 6c627473 'stbl' parent:'minf' sz: 223 64 279 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 64737473 'stsd' parent:'stbl' sz: 147 8 215 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] size=131 4CC= avc1/0x31637661 codec_type=0 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 43637661 'avcC' parent:'stsd' sz: 45 8 45 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 73747473 'stts' parent:'stbl' sz: 16 155 215 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] track[0].stts.entries = 0 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 63737473 'stsc' parent:'stbl' sz: 16 171 215 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] track[0].stsc.entries = 0 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 7a737473 'stsz' parent:'stbl' sz: 20 187 215 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] sample_size = 0 sample_count = 0 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 6f637473 'stco' parent:'stbl' sz: 16 207 215 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 70797473 'styp' parent:'root' sz: 28 660 45867145 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] type: 78646973 'sidx' parent:'root' sz: 44 688 45867145 Track id = 2 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] could not find corresponding track id 1 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x25cd7c0] error reading header [AVIOContext @ 0x25d61a0] Statistics: 32768 bytes read, 0 seeks Straight from the Heart-1_1jc2y3e4.ff4-v1.unknown_video: Invalid data found when processing input
The steps to generate this file:
git clone https://github.com/remitamine/youtube-dl -b dash
Then apply this patch:
diff --git a/youtube_dl/extractor/kaltura.py b/youtube_dl/extractor/kaltura.py index ccbc39c..0720fb4 100644 --- a/youtube_dl/extractor/kaltura.py +++ b/youtube_dl/extractor/kaltura.py @@ -165,8 +165,13 @@ class KalturaIE(InfoExtractor): m3u8_url += '?referrer=%s' % referrer formats.extend(self._extract_m3u8_formats( m3u8_url, entry_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False)) + mpd_url = info['dataUrl'].replace('format/url', 'format/mpegdash') + if referrer: + mpd_url += '?referrer=%s' % referrer + formats.extend(self._extract_mpd_formats( + mpd_url, entry_id, fatal=False)) - self._check_formats(formats, entry_id) + #self._check_formats(formats, entry_id) self._sort_formats(formats) return {
Finally run this command:
python ./youtube_dl/__main__.py -v -f bestvideo test:kaltura
Attachments (1)
Change History (7)
comment:1 by , 9 years ago
by , 9 years ago
Attachment: | Straight from the Heart-1_1jc2y3e4.unknown_video_cut added |
---|
comment:2 by , 9 years ago
Keywords: | mov regression added |
---|---|
Priority: | normal → important |
Reproduced by developer: | set |
Status: | new → open |
comment:4 by , 9 years ago
This file looks invalid to me. It declares a stream with id=2, but all of its sidx indexes reference a nonexistent stream with id=1.
We could probably degrade gracefully for this case; I'm not sure if we should fallback on assuming the index is for the first stream that exists, or just ignore indexes for nonexistent streams.
comment:5 by , 9 years ago
This file is simply a concatenation of DASH segments found in the wild. I think ffmpeg should tolerate it. libav does not implement sidx and this file plays well in avplay, so wrong sidx is not fatal here I guess?
comment:6 by , 9 years ago
Resolution: | → fixed |
---|---|
Status: | open → closed |
Fixed in 22dbc1caaf13e4bb17c9e0164a5b1ccaf490e428.
My file exceeds the size limit of trac.ffmpeg.org, so I paste the link here:
http://chyen.twbbs.org/downloads/Straight%20from%20the%20Heart-1_1jc2y3e4.unknown_video