[FFmpeg-trac] #2833(avformat:new): can't parse HLS subtitles and alternate audio

FFmpeg trac at avcodec.org
Sun Aug 4 13:07:00 CEST 2013


#2833: can't parse HLS subtitles and alternate audio
----------------------------------+---------------------------------------
             Reporter:  sinkers   |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  avformat  |                  Version:  unspecified
             Keywords:            |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+---------------------------------------
 ffmpeg doesn't appear to be able to parse HLS master playlists that
 include subtitles and alternate audio playlists which are defined as
 rendition groups according to the specification.

 As such it is not possible to use these for mapping to outputs or for
 playback or probing. Looking at the hlsproto.c it doesn't seem to include
 the required tags to parse from the latest specification.
 http://tools.ietf.org/html/draft-pantos-http-live-
 streaming-11#section-3.4.9.1

 See this Apple reference URL:
 https://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8
 It has multiple alternate audio and subtitle tracks identified by the
 #EXT-X-MEDIA tag however ffmpeg only identifies 5 program streams.

 ffmpeg -i
 https://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8
 ffmpeg version N-54152-g730e07f Copyright (c) 2000-2013 the FFmpeg
 developers
   built on Jul 24 2013 16:08:47 with Apple LLVM version 4.2
 (clang-425.0.28) (based on LLVM 3.2svn)
   configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-
 postproc --enable-libaacplus --enable-libcelt --enable-libfaac --enable-
 libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopencore-
 amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-openssl
 --enable-libopus --enable-libschroedinger --enable-libspeex --enable-
 libtheora --enable-libvo-aacenc --enable-libvorbis --enable-libvpx
 --enable-libx264 --enable-libxvid --enable-libvidstab --prefix=/usr/local
 --enable-librtmp --cc=clang
   libavutil      52. 37.101 / 52. 37.101
   libavcodec     55. 16.100 / 55. 16.100
   libavformat    55.  9.100 / 55.  9.100
   libavdevice    55.  2.100 / 55.  2.100
   libavfilter     3. 77.101 /  3. 77.101
   libswscale      2.  3.100 /  2.  3.100
   libswresample   0. 17.102 /  0. 17.102
   libpostproc    52.  3.100 / 52.  3.100

 Input #0, hls,applehttp, from
 'https://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8':
   Duration: 00:28:32.00, start: 0.000000, bitrate: 0 kb/s
   Program 0
     Metadata:
       variant_bitrate : 263851
     Stream #0:0: Audio: aac ([15][0][0][0] / 0x000F), 22050 Hz, stereo,
 fltp, 41 kb/s
     Metadata:
       variant_bitrate : 263851
     Stream #0:1: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p,
 416x234, 29.97 tbr, 90k tbn, 180k tbc
     Metadata:
       variant_bitrate : 263851
     Stream #0:2: Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p
     Metadata:
       variant_bitrate : 263851
   Program 1
     Metadata:
       variant_bitrate : 577610
     Stream #0:3: Audio: aac ([15][0][0][0] / 0x000F), 22050 Hz, stereo,
 fltp, 41 kb/s
     Metadata:
       variant_bitrate : 577610
     Stream #0:4: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p,
 640x360, 29.97 tbr, 90k tbn, 180k tbc
     Metadata:
       variant_bitrate : 577610
     Stream #0:5: Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p
     Metadata:
       variant_bitrate : 577610
   Program 2
     Metadata:
       variant_bitrate : 915905
     Stream #0:6: Audio: aac ([15][0][0][0] / 0x000F), 22050 Hz, stereo,
 fltp, 41 kb/s
     Metadata:
       variant_bitrate : 915905
     Stream #0:7: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p,
 960x540, 29.97 tbr, 90k tbn, 180k tbc
     Metadata:
       variant_bitrate : 915905
     Stream #0:8: Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p
     Metadata:
       variant_bitrate : 915905
   Program 3
     Metadata:
       variant_bitrate : 1030138
     Stream #0:9: Audio: aac ([15][0][0][0] / 0x000F), 22050 Hz, stereo,
 fltp, 41 kb/s
     Metadata:
       variant_bitrate : 1030138
     Stream #0:10: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p,
 1280x720, 29.97 tbr, 90k tbn, 180k tbc
     Metadata:
       variant_bitrate : 1030138
     Stream #0:11: Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p
     Metadata:
       variant_bitrate : 1030138
   Program 4
     Metadata:
       variant_bitrate : 1924009
     Stream #0:12: Audio: aac ([15][0][0][0] / 0x000F), 22050 Hz, stereo,
 fltp, 41 kb/s
     Metadata:
       variant_bitrate : 1924009
     Stream #0:13: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p,
 1920x1080, 29.97 tbr, 90k tbn, 180k tbc
     Metadata:
       variant_bitrate : 1924009
     Stream #0:14: Audio: mp3 ([21][0][0][0] / 0x0015), 0 channels, s16p
     Metadata:
       variant_bitrate : 1924009
   Program 5
     Metadata:
       variant_bitrate : 41457
     Stream #0:15: Audio: aac, 22050 Hz, stereo, fltp, 41 kb/s
     Metadata:
       variant_bitrate : 41457

 For reference here is the output of the above reference URL's master
 playlist

 #EXTM3U

 #EXT-X-MEDIA:TYPE=AUDIO,GROUP-
 ID="bipbop_audio",LANGUAGE="eng",NAME="BipBop Audio
 1",AUTOSELECT=YES,DEFAULT=YES
 #EXT-X-MEDIA:TYPE=AUDIO,GROUP-
 ID="bipbop_audio",LANGUAGE="eng",NAME="BipBop Audio
 2",AUTOSELECT=NO,DEFAULT=NO,URI="alternate_audio_aac/prog_index.m3u8"

 #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-
 ID="subs",NAME="English",AUTOSELECT=YES,FORCED=NO,LANGUAGE="eng",URI="subtitles/eng/prog_index.m3u8"
 #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English
 (Forced)",DEFAULT=YES,AUTOSELECT=YES,FORCED=YES,LANGUAGE="eng",URI="subtitles/eng_forced/prog_index.m3u8"
 #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-
 ID="subs",NAME="Français",AUTOSELECT=YES,FORCED=NO,LANGUAGE="fra",URI="subtitles/fra/prog_index.m3u8"
 #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Français
 (Forced)",AUTOSELECT=YES,FORCED=YES,LANGUAGE="fra",URI="subtitles/fra_forced/prog_index.m3u8"
 #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-
 ID="subs",NAME="Español",AUTOSELECT=YES,FORCED=NO,LANGUAGE="spa",URI="subtitles/spa/prog_index.m3u8"
 #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Español
 (Forced)",AUTOSELECT=YES,FORCED=YES,LANGUAGE="spa",URI="subtitles/spa_forced/prog_index.m3u8"
 #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-
 ID="subs",NAME="日本人",AUTOSELECT=YES,FORCED=NO,LANGUAGE="jpn",URI="subtitles/jpn/prog_index.m3u8"
 #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="日本人
 (Forced)",AUTOSELECT=YES,FORCED=YES,LANGUAGE="jpn",URI="subtitles/jpn_forced/prog_index.m3u8"

 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=263851,CODECS="mp4a.40.2,
 avc1.4d400d",RESOLUTION=416x234,AUDIO="bipbop_audio",SUBTITLES="subs"
 gear1/prog_index.m3u8
 #EXT-X-I-FRAME-STREAM-INF:PROGRAM-
 ID=1,BANDWIDTH=28451,CODECS="avc1.4d400d",URI="gear1/iframe_index.m3u8"

 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=577610,CODECS="mp4a.40.2,
 avc1.4d401e",RESOLUTION=640x360,AUDIO="bipbop_audio",SUBTITLES="subs"
 gear2/prog_index.m3u8
 #EXT-X-I-FRAME-STREAM-INF:PROGRAM-
 ID=1,BANDWIDTH=181534,CODECS="avc1.4d401e",URI="gear2/iframe_index.m3u8"

 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=915905,CODECS="mp4a.40.2,
 avc1.4d401f",RESOLUTION=960x540,AUDIO="bipbop_audio",SUBTITLES="subs"
 gear3/prog_index.m3u8
 #EXT-X-I-FRAME-STREAM-INF:PROGRAM-
 ID=1,BANDWIDTH=297056,CODECS="avc1.4d401f",URI="gear3/iframe_index.m3u8"

 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1030138,CODECS="mp4a.40.2,
 avc1.4d401f",RESOLUTION=1280x720,AUDIO="bipbop_audio",SUBTITLES="subs"
 gear4/prog_index.m3u8
 #EXT-X-I-FRAME-STREAM-INF:PROGRAM-
 ID=1,BANDWIDTH=339492,CODECS="avc1.4d401f",URI="gear4/iframe_index.m3u8"

 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1924009,CODECS="mp4a.40.2,
 avc1.4d401f",RESOLUTION=1920x1080,AUDIO="bipbop_audio",SUBTITLES="subs"
 gear5/prog_index.m3u8
 #EXT-X-I-FRAME-STREAM-INF:PROGRAM-
 ID=1,BANDWIDTH=669554,CODECS="avc1.4d401f",URI="gear5/iframe_index.m3u8"

 #EXT-X-STREAM-INF:PROGRAM-
 ID=1,BANDWIDTH=41457,CODECS="mp4a.40.2",AUDIO="bipbop_audio",SUBTITLES="subs"
 gear0/prog_index.m3u8

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2833>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list