Community
cancel
Showing results for 
Search instead for 
Did you mean: 
joonsik_b_
Beginner
205 Views

How can i insert key-frame at specific interval through ffmpeg?

i'm working on ffmpeg with qsv (Xeon E3 1285).

i tried to insert key-frame every 5sec with command below.

ffmpeg -t 1800 -i 2hour.mp4 -c:v h264_qsv -s 1280x720 -b:v 2M -maxrate 2M -minrate 2M -bufsize 917k -an -segment_time 5 -sc_threshold 0 -strict -2 -force_key_frames "expr:gte(t,n_forced*5)" -f segment output%03d.h264

it works fine when i use libx264(-c:v libx264) so that i can cut the video into exactly 5 sec.

But with QSV it doesn't work. video segment is 10 sec now.

How can i insert key-frame when i want?

0 Kudos
2 Replies
Jeffrey_M_Intel1
Employee
205 Views

Only a subset of parameters are implemented in the h264_qsv interface.  You can check yourself in the ffmpeg libavcodec/qsv* source files.

GOP structure and IDR interval are parameters set up at Media SDK initialization.  Much of this is done in qsvenc.c.  Here you can see that IDR interval is set directly with -idr_interval.

You can add your own QSV-specific parameters (as in qsvenc_h264.c) or figure out a way to plug the FFmpeg general parameters into QSV initialization. 

However, I suspect that there is more going on here than simple parameter setting.  The support for segment processing may still need some more work.  That is out of the scope of this forum, but you can take it to the appropriate FFmpeg lists directly.  (https://ffmpeg.org/mailman/listinfo)

 

 

poovarasan_d_
Beginner
205 Views

@joonsik : Could you help us, we are facing problem with QSV and FFMPEG installation. Please refer this forum, https://software.intel.com/en-us/forums/intel-media-sdk/topic/703141

Reply