audio - 如何使 ffmpeg 的视频和音频持续时间相同?

标签 audio video ffmpeg concatenation

我正在将一些用户生成的视频与 ffmpeg-concat 合并在一起。有时会遇到音频同步问题。我认为当音频和视频持续时间不匹配时它会失败。例如。:

ffprobe -v error -select_streams v:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 IMG_7679.mov
16.666016
ffprobe -v error -select_streams a:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 IMG_7679.mov
16.670998
问题是——如何在 concat 之前使音频和视频持续时间相等,而不会丢失内容?
或者,也许经典的 ffmpeg 的 concat 以某种方式解决了这个问题,我应该使用它?

最佳答案

您可以使用 trim和或 atrim过滤器以剪切音频或视频的一部分。

[v]trim=0:3.23,setpts=START-PTS[vout]
[a]atrim=0:3.23,asetpts=START-PTS[aout]
setpts 和 asetpts 修复时间戳

关于audio - 如何使 ffmpeg 的视频和音频持续时间相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63530641/

相关文章:

audio - 向 FFMPEG 添加 SPEEX 代码支持

file - 如何启用 FFMPEG 日志记录以及在哪里可以找到 FFMPEG 日志文件?

java - 同步截屏 (ffmpeg) 和从网络摄像头捕获 (OpenCV)

python - 为什么来自 librosa 库的频谱图与实际音轨的持续时间不同?

audio - ffmpeg concat vidoes 找不到流 1 的编解码器参数

html - 如何在全屏模式下显示自定义视频控件

video - ffmpeg concat 产生 DTS 乱序错误

audio - Windows Phone 8 中的 SHOUTcast 流

c++ - 如何使用 C++ 开始对音频/视频流进行编程?

javascript - HTML5 视频播放速率