我正在运行以下命令来裁剪 MP4 文件
-i "C:\FFMPEG\Temp\S3\2ad239d1-f4b9-4854-afe4-7e28157893daHighRes.mp4" -q:v 0 -y -ss 00:00:01.000 -to 00:00:29.834 -vf "fade=t=out:st=29.334:d=0.500, scale=iw*min(1080/iw\,720/ih):ih*min(1080/iw\,720/ih),pad=1080:720:(1080-iw)/2:(720-ih)/2" "C:\FFMPEG\Temp\Crops\5ae9806e32ab040978d97013_0.ts"
如您所见,我想裁剪一个正好为 28834 毫秒长的视频。但是,通过 ffprobe 检查创建的文件时长为 28873 毫秒。为什么是这样?
最佳答案
因为您的每秒帧数不是 1000。
视频不编码毫秒,它们编码帧。它们只能编码整数帧。如果您要求的持续时间与帧的持续时间不均等,则输出持续时间会稍长。
对于 28834 毫秒的持续时间,可能的帧速率为 1000
, 500
, 1000/13 ≈ 76.9
, 500/13 ≈ 38.5
, 1000/1109
, 500/1109
, 1000/14417
和 500/14417
.
关于ffmpeg - 从 MP4 文件创建 TS 文件 - 不同的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50131142/