我正在尝试使用ffmpeg实现部分转码。 我目前使用的命令是:
ffmpeg.exe -ss 开始时间 -i 源文件 -t 持续时间 -y -s 640x360 -b:v 1024k -vcodec libx264 -r 29.7 -movflags faststart -pix_fmt yuv420p outputfile
在ffmpeg文档中,我读到了-to参数:
- 位置(输出)停止将输出写入位置。位置可以是以秒为单位的数字,也可以是hh:mm:ss [.xxx]形式。
-to和-t是互斥的,-t具有优先权。
但当我尝试用 -to 代替" -t" ,输出相同,我的意思是 -to 之后的值被视为输出视频的持续时间。我认为它会像结束时间那样对待价值。我错过了什么吗?
答案 0 :(得分:5)
来自FFmpeg Wiki:
请注意,如果仅在
-ss
之前指定-i
,则时间戳将重置为零,因此-t和-to具有相同的效果:ffmpeg -ss 00:01:00 -i video.mp4 -to 00:02:00 -c copy cut.mp4 ffmpeg -i video.mp4 -ss 00:01:00 -to 00:02:00 -c copy cut.mp4
这里,第一个命令将从00:01:00切换到00:03:00(原始版本),而第二个命令将按照预期从00:01:00切换到00:02:00。
因此,请确保在输入后放置-ss
,以便时间戳不会重置。