首页 > 解决方案 > FFMPEG 脚本用于合并列表中的所有文件并制作 1920x1080p 60fps mp4 视频

问题描述

我在一个文本文件中有一个包含 46 个视频的列表。我尝试了 concat 方法来合并所有这些,该方法有效,但质量很差,并且音频在某些部分出现错误/丢失。
有人可以帮我编写一个脚本来合并所有 46 个视频并输出为 1920x1080 60fps mp4 视频吗?

标签: ffmpegvideo-editing

解决方案


首先,您必须缩放所有视频,您可以在仅包含视频的目录中使用这样的脚本。假设它们具有不同的格式,从而使所有格式相同可以使事情变得容易。

for i in *;
   do name= echo "$i" | cut -d'.' -f1
   echo "$name"
   ffmpeg -i "$i" -c:v copy -c:a copy -pixel_format yuv420p -s 1920x1080 -r 60 -async 1 "${name}.mp4"

(或者

ffmpeg -i "$i" -c:v h264 -c:a aac -b:a 128k -pixel_format yuv420p -s 1920x1080 -r 60 -async 1 "${name}.mp4"

如果您仍然有音频问题。)

-r 通过将帧相乘将每个视频的帧速率强制为 60;检查视频和音频的质量,做你的清单,然后:

ffmpeg -f concat -safe 0 -i list.txt -c:v copy -c:a copy concat.mp4

推荐阅读