[FFmpeg-trac] #2619(avformat:new): Unable to play HLS urls from uplynk.com

FFmpeg trac at avcodec.org
Thu Jun 6 22:11:35 CEST 2013


#2619: Unable to play HLS urls from uplynk.com
-------------------------------------+------------------------------------
             Reporter:  kyl416       |                    Owner:
                 Type:  enhancement  |                   Status:  new
             Priority:  normal       |                Component:  avformat
              Version:  git-master   |               Resolution:
             Keywords:  hls          |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+------------------------------------

Comment (by kyl416):

 That took care of the cookies problem, however there seems to be another
 issue preventing playback, the underlying .ts files for whatever reason
 have an undecodable mp3 stream and ffmpeg hangs when trying to probe the
 m3u8 playlist for all the variant bitrates, while iOS just ignores them:
 {{{
 ffmpeg -i
 http://content.uplynk.com/channel/ext/72750b711f704e4a94b5cfe6dc99f5e1/WABCLive1.m3u8
 ffmpeg version N-53878-g00f4998 Copyright (c) 2000-2013 the FFmpeg
 developers
   built on Jun  6 2013 15:30:27 with gcc 4.7 (Ubuntu/Linaro
 4.7.3-1ubuntu1)
   configuration: --prefix=/usr --enable-gpl --enable-version3 --enable-
 nonfree --enable-shared --enable-postproc --enable-libx264 --enable-frei0r
 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libdc1394
 --enable-libmp3lame --enable-libtheora --enable-libopenjpeg --enable-
 libvpx --enable-libgsm --enable-libschroedinger --enable-libspeex
 --enable-libvorbis --enable-libxvid --enable-libfaac --cpu=amdfam10
 --enable-x11grab --enable-libxavs --enable-libfreetype --enable-libvo-
 aacenc --enable-libvo-amrwbenc --enable-libcelt --enable-openal --enable-
 libcdio --enable-libaacplus --enable-libmodplug --enable-libpulse
 --enable-openssl --enable-libv4l2 --enable-libass --enable-libbluray
 --enable-avresample --enable-libiec61883 --enable-libopus --enable-libcaca
 --enable-libfdk-aac --enable-libilbc --enable-libtwolame --enable-librtmp
 --enable-libsoxr --disable-stripping --enable-libaacplus --enable-opencl
 --enable-libflite --enable-libquvi
   libavutil      52. 35.100 / 52. 35.100
   libavcodec     55. 15.100 / 55. 15.100
   libavformat    55.  8.102 / 55.  8.102
   libavdevice    55.  2.100 / 55.  2.100
   libavfilter     3. 75.101 /  3. 75.101
   libavresample   1.  1.  0 /  1.  1.  0
   libswscale      2.  3.100 /  2.  3.100
   libswresample   0. 17.102 /  0. 17.102
   libpostproc    52.  3.100 / 52.  3.100
 [mpegts @ 0x17164a0] max_analyze_duration 5000000 reached at 5034667
 microseconds
 [mpegts @ 0x17164a0] Could not find codec parameters for stream 2 (Audio:
 mp3 ([21][0][0][0] / 0x0015), 0 channels): unspecified frame size
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 skipping 9 segments ahead, expired from playlists
 [mpegts @ 0x19f2080] max_analyze_duration 5000000 reached at 5034667
 microseconds
 [mpegts @ 0x19f2080] Could not find codec parameters for stream 2 (Audio:
 mp3 ([21][0][0][0] / 0x0015), 0 channels): unspecified frame size
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 skipping 15 segments ahead, expired from playlists
 [mpegts @ 0x1b9ae20] max_analyze_duration 5000000 reached at 5034667
 microseconds
 [mpegts @ 0x1b9ae20] Could not find codec parameters for stream 2 (Audio:
 mp3 ([21][0][0][0] / 0x0015), 0 channels): unspecified frame size
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 skipping 20 segments ahead, expired from playlists
 skipping 1 segments ahead, expired from playlists
 [mpegts @ 0xd274a40] max_analyze_duration 5000000 reached at 5034667
 microseconds
 [mpegts @ 0xd274a40] Could not find codec parameters for stream 2 (Audio:
 mp3 ([21][0][0][0] / 0x0015), 0 channels): unspecified frame size
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 skipping 24 segments ahead, expired from playlists
 [mpegts @ 0xd263b20] max_analyze_duration 5000000 reached at 5034667
 microseconds
 [mpegts @ 0xd263b20] Could not find codec parameters for stream 2 (Audio:
 mp3 ([21][0][0][0] / 0x0015), 0 channels): unspecified frame size
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 skipping 75 segments ahead, expired from playlists
 [mpegts @ 0x38e85ac0] max_analyze_duration 5000000 reached at 5034667
 microseconds
 [mpegts @ 0x38e85ac0] Could not find codec parameters for stream 2 (Audio:
 mp3 ([21][0][0][0] / 0x0015), 0 channels): unspecified frame size
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 [hls,applehttp @ 0x16f6ee0] max_analyze_duration 5000000 reached at
 5034667 microseconds
 [hls,applehttp @ 0x16f6ee0] Could not find codec parameters for stream 2
 (Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p): unspecified frame
 size
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 [hls,applehttp @ 0x16f6ee0] Could not find codec parameters for stream 5
 (Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p): unspecified frame
 size
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 [hls,applehttp @ 0x16f6ee0] Could not find codec parameters for stream 8
 (Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p): unspecified frame
 size
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 [hls,applehttp @ 0x16f6ee0] Could not find codec parameters for stream 11
 (Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p): unspecified frame
 size
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 [hls,applehttp @ 0x16f6ee0] Could not find codec parameters for stream 14
 (Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p): unspecified frame
 size
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 [hls,applehttp @ 0x16f6ee0] Could not find codec parameters for stream 17
 (Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p): unspecified frame
 size
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 [hls,applehttp @ 0x16f6ee0] Estimating duration from bitrate, this may be
 inaccurate
 Input #0, hls,applehttp, from
 'http://content.uplynk.com/channel/ext/72750b711f704e4a94b5cfe6dc99f5e1/WABCLive1.m3u8':
   Duration: 00:00:00.05, start: 124.330667, bitrate: 227 kb/s
   Program 0
     Metadata:
       variant_bitrate : 407383
     Stream #0:0: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo,
 fltp, 79 kb/s
     Metadata:
       variant_bitrate : 407383
     Stream #0:1: Video: h264 (Constrained Baseline) ([27][0][0][0] /
 0x001B), yuv420p, 416x234, 15 fps, 29.97 tbr, 90k tbn, 60 tbc
     Metadata:
       variant_bitrate : 407383
     Stream #0:2: Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p
     Metadata:
       variant_bitrate : 407383
   Program 1
     Metadata:
       variant_bitrate : 691241
     Stream #0:3: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo,
 fltp, 96 kb/s
     Metadata:
       variant_bitrate : 691241
     Stream #0:4: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p,
 704x396, 15 fps, 29.97 tbr, 90k tbn, 60 tbc
     Metadata:
       variant_bitrate : 691241
     Stream #0:5: Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p
     Metadata:
       variant_bitrate : 691241
   Program 2
     Metadata:
       variant_bitrate : 1197955
     Stream #0:6: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo,
 fltp, 127 kb/s
     Metadata:
       variant_bitrate : 1197955
     Stream #0:7: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p,
 896x504, 15 fps, 29.97 tbr, 90k tbn, 60 tbc
     Metadata:
       variant_bitrate : 1197955
     Stream #0:8: Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p
     Metadata:
       variant_bitrate : 1197955
   Program 3
     Metadata:
       variant_bitrate : 2513383
     Stream #0:9: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo,
 fltp, 128 kb/s
     Metadata:
       variant_bitrate : 2513383
     Stream #0:10: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p,
 1280x720, 15 fps, 29.97 tbr, 90k tbn, 60 tbc
     Metadata:
       variant_bitrate : 2513383
     Stream #0:11: Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p
     Metadata:
       variant_bitrate : 2513383
   Program 4
     Metadata:
       variant_bitrate : 115526
     Stream #0:12: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo,
 fltp, 35 kb/s
     Metadata:
       variant_bitrate : 115526
     Stream #0:13: Video: h264 (Constrained Baseline) ([27][0][0][0] /
 0x001B), yuv420p, 192x108, 7.50 fps, 14.99 tbr, 90k tbn, 30 tbc
     Metadata:
       variant_bitrate : 115526
     Stream #0:14: Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p
     Metadata:
       variant_bitrate : 115526
   Program 5
     Metadata:
       variant_bitrate : 229098
     Stream #0:15: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo,
 fltp, 48 kb/s
     Metadata:
       variant_bitrate : 229098
     Stream #0:16: Video: h264 (Constrained Baseline) ([27][0][0][0] /
 0x001B), yuv420p, 256x144, 15 fps, 29.97 tbr, 90k tbn, 60 tbc
     Metadata:
       variant_bitrate : 229098
     Stream #0:17: Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p
     Metadata:
       variant_bitrate : 229098
 At least one output file must be specified
 }}}

 It appears that the long probing before it gives up on the mp3 streams,
 combined with the nature of HLS's dynamic playlists where it needs refetch
 the individual playlists for the variant bitrates as by the time it
 reaches the next playlist enough time has passed so the last mpegts
 segment expired results in the hang. Timing it, it took about 5 minutes
 before it probed every variant bitrate.

 I tried using the analyzeduration flag to shorten the probe time, however
 the value only affects the time it takes to probe the container itself
 (the m3u8 playlist) while it ignores the flag when probing the underlying
 mpegts files.

 Maybe some type of hack is needed to skip these streams right away instead
 of continuing to attempt to probe them until max_analyze_duration is
 reached. I'm not fully familiar with the probing process, so I don't know
 which came first in the probing process, the 0 channels, the "unspecified
 frame size" error or if that's what is always shown if it can't decode the
 stream after the max_analyze_duration is reached.

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2619#comment:3>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list