[FFmpeg-user] Scenecut detection and consistent GOP size - adaptive streaming

tarun singhal tsinghal18 at gmail.com
Mon Mar 24 09:06:40 CET 2014


Sample Command: -map 0:0 -f mp4 -vcodec libx264 -preset slow -profile:v
main -vf scale="640:trunc(ow/a/2)*2" -vb 700k -minrate 650k -maxrate 750k
-bufsize 10000k -an -g 48 -x264opts keyint=48:min-keyint=10:scenecut=40
-flags +cgop -sc_threshold 40 -pix_fmt yuv420p -threads 0 -y

There is as such no error in encoding, But I wanted to understand following

1) the above command will ensure that range of GOP size is {10,48}, and if
any scene change value (frame1 to fame2) is >40%, then a keyframe is
introduced there?

2) So that means in a 3 hours of source video, there is no guarantee that
GOP size will remain same

3) No consider, I am creating 7 MP4 files each with different bitrate and
resolution. (These Mp4s will be encoded to smooth in later stage). Hence i
am targeting adaptive streaming. But when I did that, I found that if GOP
sizes were not consistent across each bitrates. What I mean by this is, for
ex: if in Bitrate1 - GOP size is like 10, 20, 48 and so on, in other
bitrates it wasnt in the same sequence. I hope my question makes sense.

So is there a way to ensure that GOP size may vary across one single
output. But it should be consistent across each bitrate provided that the
source is same?

Also for adaptive streaming is scenecut detection advisable?

Tarun Singhal

More information about the ffmpeg-user mailing list