bash - 用 ffmpeg 分割视频会产生奇怪的输出

标签 bash video ffmpeg split

我想将视频分成(大部分)相等的 120 秒长度的部分。下面的代码有效,但只有第一个视频输出是正常的 mp4 格式。其他人似乎从上一个视频结束的地方开始,但就像视频文件从未被剪切过一样

第一个视频时间轴图像:

video1 timeline

下一个视频时间线,如您所见,它从 2 分钟标记开始,而不是从 0 开始作为单独的视频。即使文件统计信息仍显示视频长度为 2 分钟:

video2 timeline

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/

相关文章:

file - 如何使用循环从 .txt 文件中删除行?

bash - 无法通过读取比较接收到的用户输入

c# - 逐帧录制视频时,如何处理C#.NET TimeSpan Progressive Rounding Error?

python - youtube dl - 覆盖元数据

php - ffmpeg 编码 bing 像视频预览

Linux 将标准输出重定向到实时管道

regex - 无法将否定先行断言应用于 bash 上的 nagios 插件输出

javascript - 是否可以为未加载的视频提供备用 anchor 链接?

java - 通过java上传mp4文件无法播放/已损坏

ffmpeg - 通过设置高度比修改后如何让ffmpeg计算宽度?