使用 FFMPEG 转换文件以完全匹配另一个文件的规范?
Convert a file to match another's specification exactly with FFMPEG?
我有一系列来自同一来源的文件,因此在我与 FFMPEG 连接的所有方面都具有完全相同的格式
- file1.mov
- file2.mov
- file3.mov
这非常快并且工作正常但是我不想获取可选的介绍文件(来自许多不同的来源和许多不同类型)并在加入之前将其转换以匹配其他文件。
- 介绍.mp4
如何使用 FFMPEG 执行此操作?
这是否提供了我需要的一切?
ffprobe -select_streams a:0 -show_entries \
stream=codec_name,channels -of default=nw=1:nk=1 -v 0 ./file1.mov
ffprobe -select_streams v:0 -show_entries \
stream=codec_name,width,height,r_frame_rate,pix_fmt \
-of default=nw=1:nk=1 -v 0 ./file1.mov
这样我就可以:
ffmpeg -i intro.mp4 \
-c:v h264 -s 1280x720 -pix_fmt yuv420p -framerate 30/1 \
-c:a pcm_s16le -ca 1 intro.mov
然后将其无缝合并到其余部分?
ffmpeg -f concat -safe 0 -i videos.txt -c copy merged.mov -y
答案当然是“否”,因此请求您的支持。
合并文件 1、2 和 3 时音频很好,但合并 intro + 1、2 和 3 时音频太快。转换后的前奏文件在转换后和合并后始终可以单独播放,但其他文件在合并后播放音频速度太快。
我错过了什么?
更新:
所以最后这对介绍有用:
ffmpeg -i intro.mp4 \
-c:v h264 -s 1280x720 -pix_fmt yuv420p -framerate 30 \
-c:a pcm_s16le -ac 1 -b:a 512k -ar 32000 intro.mov -y
我怀疑 intro.mp4
的音频采样率比其他的高,-f concat
正在将虚拟输入文件的音频采样率设置为 intro.mov
和 运行它。
要解决此问题 运行 再次检查您的探头并检查音频采样率(我记不起输出中的名称,但可能是“sample_rate” ).让这个数fs
再转码intro.mp4
ffmpeg -i intro.mp4 \
-c:v h264 -s 1280x720 -pix_fmt yuv420p -framerate 30/1 \
-c:a pcm_s16le -ar fs -ca 1 intro.mov
将 fs
替换为您找到的汇率。如果它播放速度更快,其他所有音频格式都兼容。
我有一系列来自同一来源的文件,因此在我与 FFMPEG 连接的所有方面都具有完全相同的格式
- file1.mov
- file2.mov
- file3.mov
这非常快并且工作正常但是我不想获取可选的介绍文件(来自许多不同的来源和许多不同类型)并在加入之前将其转换以匹配其他文件。
- 介绍.mp4
如何使用 FFMPEG 执行此操作?
这是否提供了我需要的一切?
ffprobe -select_streams a:0 -show_entries \
stream=codec_name,channels -of default=nw=1:nk=1 -v 0 ./file1.mov
ffprobe -select_streams v:0 -show_entries \
stream=codec_name,width,height,r_frame_rate,pix_fmt \
-of default=nw=1:nk=1 -v 0 ./file1.mov
这样我就可以:
ffmpeg -i intro.mp4 \
-c:v h264 -s 1280x720 -pix_fmt yuv420p -framerate 30/1 \
-c:a pcm_s16le -ca 1 intro.mov
然后将其无缝合并到其余部分?
ffmpeg -f concat -safe 0 -i videos.txt -c copy merged.mov -y
答案当然是“否”,因此请求您的支持。 合并文件 1、2 和 3 时音频很好,但合并 intro + 1、2 和 3 时音频太快。转换后的前奏文件在转换后和合并后始终可以单独播放,但其他文件在合并后播放音频速度太快。
我错过了什么?
更新:
所以最后这对介绍有用:
ffmpeg -i intro.mp4 \
-c:v h264 -s 1280x720 -pix_fmt yuv420p -framerate 30 \
-c:a pcm_s16le -ac 1 -b:a 512k -ar 32000 intro.mov -y
我怀疑 intro.mp4
的音频采样率比其他的高,-f concat
正在将虚拟输入文件的音频采样率设置为 intro.mov
和 运行它。
要解决此问题 运行 再次检查您的探头并检查音频采样率(我记不起输出中的名称,但可能是“sample_rate” ).让这个数fs
再转码intro.mp4
ffmpeg -i intro.mp4 \
-c:v h264 -s 1280x720 -pix_fmt yuv420p -framerate 30/1 \
-c:a pcm_s16le -ar fs -ca 1 intro.mov
将 fs
替换为您找到的汇率。如果它播放速度更快,其他所有音频格式都兼容。