video - 将许多 mp4 文件标准化为相同的分辨率

标签 video ffmpeg concatenation

我收集了大量不同分辨率和不同音频编解码器的 Instagram 视频。

某些视频的分辨率为 640x640,其他视频的分辨率为 640x800。你就明白了。

当我尝试连接视频时,视频和音频在最终输出中不同步,并且在某些地方音频速度减慢(?)。

这是我的 ffmpeg concat 命令:

ffmpeg -i "$(cat /home/list.txt)" -c:v copy -c:a copy /home/output.mp4

list.txt 包含超过 800 个剪辑且格式正确:

file 'clip1.mp4'
file 'clip2.mp4'
file 'clip3.mp4'
etc...

我认为问题是由于使用了不同的分辨率和不同的编解码器造成的,那么我如何标准化我的剪辑集合以便将它们连接到工作视频文件中?

最佳答案

经过大量挖掘,我找到了一个解决方案,可以将视频升级到 1920x1080,同时保持宽高比,并在需要时添加黑条。这应该适用于所有分辨率。

ffmpeg -i input.mp4 -vsync 2 \
-codec:v libx264 -preset fast -codec:a copy \
-vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" \
-crf 17 -pix_fmt yuv420p -movflags +faststart output.mp4

关于video - 将许多 mp4 文件标准化为相同的分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53397043/

相关文章:

javascript - 从 File 对象中的数据播放视频

audio - ffmpeg - 将图像和音频组合成视频后,视频比音频长

mysql - 我可以将多个 MySQL 行连接到一个字段中吗?

php - 在 Windows 服务器上为 php 安装 ffmpeg 模块

MySQL 调用返回错误组合的结果,或者如果涉及的表为空,则返回全空行

java - 使用连接和操作格式化字符串的最快方法

video - 是否可以在一堆视频的开头自动添加视频?

video - 透明地将 mp4 转换为 webm?

html - 如何提高同时播放的多个相同视频标签的性能

audio - 将MP4输入流中的章节复制到ffmpeg中的输出流