[FFmpeg-trac] #5858(ffmpeg:new): HLS single file playback broken when encryption enabled

FFmpeg trac at avcodec.org
Thu Sep 22 22:09:33 EEST 2016


#5858: HLS single file playback broken when encryption enabled
-------------------------------------+-------------------------------------
             Reporter:  bmurphy1976  |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  ffmpeg       |                  Version:  git-
             Keywords:               |  master
             Blocking:               |               Blocked By:
Analyzed by developer:  0            |  Reproduced by developer:  0
-------------------------------------+-------------------------------------
 HLS files generated with encryption enabled and the single segment (byte
 range) option result in videos that are unplayable in QuickTime and Safari
 on OSX.  The same videos play without issue when encryption is not
 utilized.

 The specific behavior is that video playback starts, but there are periods
 where video playback gets stuck and then resumes, get stuck, and then
 resumes.  It seems to be related to the different segment offsets where
 some segments play without issue while other segments get frozen on a
 single frame.

 I can reproduce this with origin/master checked out on 9/22/16.

 Using the following as input:

 https://s3.amazonaws.com/1d4326f61a9a4ed596de9e1a41d48413/input.ts

 I created a "good" version here which does not utilize encryption and
 plays back without issue:

 https://s3.amazonaws.com/1d4326f61a9a4ed596de9e1a41d48413/encryption/good/good.m3u8

 I also created a "bad" version here which utilizes encryption and exhibits
 the undesired behavior:

 https://s3.amazonaws.com/1d4326f61a9a4ed596de9e1a41d48413/encryption/bad/bad.m3u8

 Here is the console log for generating the "bad" version:

 {{{
 bash-4.3# openssl rand 16 > output/bad/bad.key
 bash-4.3# cat <<EOF > input.conf
 > bad.key
 > output/bad/bad.key
 > EOF
 bash-4.3# ffmpeg -y -i input.ts -c copy -map 0 -hls_flags single_file
 -hls_list_size 0 -hls_playlist_type vod -hls_key_info_file input.conf
 output/bad/bad.m3u8
 ffmpeg version N-81723-g6d9a46e Copyright (c) 2000-2016 the FFmpeg
 developers
   built with gcc 5.3.0 (Alpine 5.3.0)
   configuration: --prefix=/usr --enable-avresample --enable-avfilter
 --enable-gnutls --enable-gpl --enable-libmp3lame --enable-librtmp
 --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264
 --enable-libx265 --enable-libtheora --enable-libv4l2 --enable-postproc
 --enable-pic --enable-pthreads --enable-shared --enable-x11grab --disable-
 stripping --disable-static --enable-vaapi --enable-libopus --enable-
 nonfree --enable-libfdk-aac
   libavutil      55. 30.100 / 55. 30.100
   libavcodec     57. 57.101 / 57. 57.101
   libavformat    57. 50.100 / 57. 50.100
   libavdevice    57.  0.102 / 57.  0.102
   libavfilter     6. 62.100 /  6. 62.100
   libavresample   3.  0.  0 /  3.  0.  0
   libswscale      4.  1.100 /  4.  1.100
   libswresample   2.  1.100 /  2.  1.100
   libpostproc    54.  0.100 / 54.  0.100
 [h264 @ 0x7fb1ee66fae0] non-existing SPS 0 referenced in buffering period
 [h264 @ 0x7fb1ee66fae0] SPS unavailable in decode_picture_timing
 [h264 @ 0x7fb1ee66fae0] non-existing SPS 0 referenced in buffering period
 [h264 @ 0x7fb1ee66fae0] SPS unavailable in decode_picture_timing
 Input #0, mpegts, from 'input.ts':
   Duration: 00:00:30.06, start: 1.415333, bitrate: 3982 kb/s
   Program 1
     Metadata:
       service_name    : Service01
       service_provider: FFmpeg
     Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B),
 yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95
 tbc
     Stream #0:1[0x101](und): Audio: aac (LC) ([15][0][0][0] / 0x000F),
 48000 Hz, stereo, fltp, 120 kb/s
 Output #0, hls, to 'output/bad/bad.m3u8':
   Metadata:
     encoder         : Lavf57.50.100
     Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p,
 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 23.98 tbr, 90k tbn, 23.98
 tbc
     Stream #0:1(und): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz,
 stereo, 120 kb/s
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
 Press [q] to stop, [?] for help
 frame=  720 fps=0.0 q=-1.0 Lsize=N/A time=00:00:29.99 bitrate=N/A
 speed=49.3x
 video:13001kB audio:471kB subtitle:0kB other streams:0kB global
 headers:0kB muxing overhead: unknown
 }}}

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


More information about the FFmpeg-trac mailing list