我想将视频分成(大部分)相等的 120 秒长度的部分。下面的代码有效,但只有第一个视频输出是正常的 mp4 格式。其他人似乎从上一个视频结束的地方开始,但就像视频文件从未被剪切过一样
第一个视频时间轴图像:
下一个视频时间线,如您所见,它从 2 分钟标记开始,而不是从 0 开始作为单独的视频。即使文件统计信息仍显示视频长度为 2 分钟:
ffmpeg -i 1146redmp4.mp4 -c:v libx264 -crf 22 -map 0 -segment_time 120 -g 120 -sc_threshold 0 -force_key_frames "expr:gte(t,n_forced*120)" -f segment 1146output%03d.mp4
如果这是正确的输出而不是错误。如何将视频拆分作为自己的视频输出?
最佳答案
看起来您的播放器不喜欢开始时间戳为非零。ffmpeg -i 1146redmp4.mp4 -c:v libx264 -crf 22 -map 0 -segment_time 120 -g 120 -sc_threshold 0 -force_key_frames "expr:gte(t,n_forced*120)" -reset_timestamps 1 -f segment 1146output%03d.mp4
关于bash - 用 ffmpeg 分割视频会产生奇怪的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57355354/