[FFmpeg-user] Fixed GOP encoding for HLS

Christian Ebert blacktrash at gmx.net
Wed Dec 5 22:00:43 CET 2012


* Christian Ebert on Wednesday, December 05, 2012 at 11:09:10 +0000
> * Stefano Sabatini on Wednesday, December 05, 2012 at 01:00:08 +0100
>> The trick I used was using -force_key_frames in ffmpeg and then use a
>> reasonable value for -segment_time_delta (half the value of the
>> framerate should be safe), check the segment examples.
> 
> This is a bit unclear to me: for 25 fps that would be half of
> 0.04, i.e. 0.02?? The example says 0.05 which would point to a
> very low framerate?

I tried with 0.02 although it does not make a difference to
omitting it in my case.

To me it looks like -force_key_frames is not precise enough, I
set it at 10,20,30 etc. and:

key_frame=1
pkt_pts_time=9.991300
key_frame=1
pkt_pts_time=10.014511

With

ffmpeg -i test.ts -c copy -map 0 -f segment -segment_time 10 -segment_time_delta 0.02 -segment_list test.m3u8 test-%3d.ts
ffmpeg version N-47489-g5381960 Copyright (c) 2000-2012 the FFmpeg developers
  built on Dec  5 2012 19:39:55 with gcc 4.0.1 (GCC) (Apple Inc. build 5493)
  configuration: --enable-gpl --enable-version3 --enable-nonfree --disable-network --disable-ffserver --disable-ffplay --enable-shared --enable-pthreads --enable-postproc --enable-libx264 --enable-libxvid --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --extra-cflags=-I/sw/include --extra-libs=-L/sw/lib
  libavutil      52. 11.102 / 52. 11.102
  libavcodec     54. 79.100 / 54. 79.100
  libavformat    54. 46.100 / 54. 46.100
  libavdevice    54.  3.102 / 54.  3.102
  libavfilter     3. 24.100 /  3. 24.100
  libswscale      2.  1.103 /  2.  1.103
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
[mpegts @ 0x2002620] max_analyze_duration 5000000 reached at 5000000
Input #0, mpegts, from 'test.ts':
  Duration: 00:04:14.22, start: 1.376778, bitrate: 872 kb/s
  Program 1
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p, 512x384 [SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x101](eng): Audio: aac ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 73 kb/s
Output #0, segment, to 'test-%3d.ts':
  Metadata:
    encoder         : Lavf54.46.100
    Stream #0:0: Video: h264 ([27][0][0][0] / 0x001B), yuv420p, 512x384 [SAR 1:1 DAR 4:3], q=2-31, 25 fps, 90k tbn, 25 tbc
    Stream #0:1(eng): Audio: aac ([15][0][0][0] / 0x000F), 44100 Hz, stereo, 73 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 6356 fps=0.0 q=-1.0 Lsize=       0kB time=00:04:14.28 bitrate=   0.0kbits/s
video:21843kB audio:2483kB subtitle:0 global headers:0kB muxing overhead -100.000000%

this results in an unexpected/undesired EXT-X-TARGETDURATION of
11 instead of 10:

tail test.m3u8
#EXTINF:10.016744,
test-022.ts
#EXTINF:10.001378,
test-023.ts
#EXTINF:10.009189,
test-024.ts
#EXTINF:4.258411,
test-025.ts
#EXT-X-TARGETDURATION:11
#EXT-X-ENDLIST

Comments?

-- 
theatre - books - texts - movies
Black Trash Productions at home: http://www.blacktrash.org
Black Trash Productions on Facebook:
http://www.facebook.com/blacktrashproductions


More information about the ffmpeg-user mailing list