我用
ffmpeg -i my_video.mp4 -vf scale=1024:-1 my_video.avi
对视频进行编码/转码。现在我想做同样的事情,但是从坐标系X开始。我该怎么做呢?
Larry的观点是,视频通常是可变帧速率的,所以使用时间戳可能不准确。但是,您可以使用-fps_mode
将视频转换为恒定帧速率。
ffmpeg -i <input> -fps_mode cfr -c:v copy -c:a copy <output>
确定修剪的开始帧,然后计算开始帧在视频中出现的时间。这需要你知道开始帧的帧数和视频的fps(可以通过ffprobe获得)。
frame_time =frame number / frames per second
在下面的命令中,-ss
标志将在给定时间开始修剪视频。输入我们刚刚计算的帧时间戳,我把它标记为<frame_time>
。
ffmpeg -ss <frame_time> -i <input> <output.avi>
另外,如果你的输出视频有一定的帧数,请使用:
ffmpeg -ss <frame_time> -i <input> -frames:v <number_of_frames> <output.avi>
对于原来的问题,您可以将-vf scale=1024:-1
插入到上述任意一个命令中(在输出之前)。