[FFmpeg-user] Intent of -copyinkf and non-key frames in video stream copy

Doug Handy doug at doughandy.com
Wed Apr 17 19:37:56 CEST 2013

I am trying to clarify if I am misunderstanding the intent of the -copyinkf flag, or if what I want to do is not possible without transcoding.

I would like to extract frame accurate subsets from an input movie while still getting the speed advantage of a video stream copy.  Normally a video stream copy must start on key frame boundaries, and i understand why.   But the documentation includes this subset:

‘-copyinkf[:stream_specifier] (output,per-stream)’
When doing stream copy, copy also non-key frames found at the beginning.

I am not finding much more information about this option at all.  Perhaps it is wishful thinking on my part and reading it to mean what I want it to mean, but I was hoping this would mean that when specified and your start location was not on a key frame, that it would generate a proper keyframe from the prior keyframe and intermediate frames up to the desired starting point.

I did find a cvslog message from Jan 2012 which showed a bug with this option:

This option only applies to streamcopy, but is currently processed only
when encoding.
The change log is at https://lists.ffmpeg.org/pipermail/ffmpeg-cvslog/2012-January/045759.html

However, I am not getting it to produce the desired effect.  It always subsets on a keyframe boundary.  So prior to filing a bug report, I am trying to find out if I just misunderstand the intent of -copyinkf.  So the question is:

Should -copyinkf allow me to start a video stream copy on a non-key frame position?  If it helps, I can typically copy the video stream only and discard the audio stream.


More information about the ffmpeg-user mailing list