繁体   English   中英

ffmpeg 加速过程后损坏的视频持续时间

[英]Corrupt video duration after ffmpeg speeding up process

我正在使用这段代码来加速一些视频:

"C:\Program Files (x86)\ffmpeg\bin\ffmpeg.exe" -i "C:\Users\Agustín\Downloads\Presentación.mp4" -vf "setpts=(PTS-STARTPTS)/1.5" -crf 18 -af atempo=1.5 "C:\Users\Agustín\Downloads\Comercio\Presentación.mp4"

第一批视频没问题,但第二批没有:每个视频的描述仍然是原来的长度,播放视频时,时间条显示原来的长度。 例如,当您播放一个被缩短为 40 分钟的视频时,进度条一直显示 1 小时; 40 分钟后,视频结束(没有静音播放,它只是停止并转到 00:00)。

我找到了这篇文章: https://superuser.com/questions/863183/how-to-fix-ffmpeg-inaccurate-time-stamp-that-corrupts-thumbnail-generation

建议的解决方案是将视频和音频复制到一个新容器中,以便重新设置长度......

ffmpeg -i input -c:v copy -c:a copy output

...但它不适用于我的视频。

我认为问题在于时间戳:第一批视频没有时间戳,但这个有(“屏幕录制开始”等)。 加速视频后,时间戳保持不变(它们与现在更快的视频无关)。

有任何想法吗? 提前致谢!

这里有一些尝试:

ffmpeg -i input.mp4 -vf setpts=N/FR/1.5/TB -crf 18 -af atempo=1.5 output.mp4

如果视频时间戳有问题导致上述行为,使用(PTS-STARTPTS)/1.5将无法纠正它。 但是,如果这是问题所在,它可能会扰乱音频同步。 所以,寻找那个。

如果问题仍然存在,请像这样探测输入/输出文件:

ffprobe -hide_banner -of default -show_format -show_streams input.mp4

并比较流的持续时间以及容器的持续时间。 如果您需要进一步的帮助,请发帖 output。

如果什么都没有跳出来,那么尝试一次只编码一个 stream(使用-an output 选项来禁用声音和-vn选项同样用于视频)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM