使用ffmpeg 将多个音频插入到视频中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ffmpeg 将多个音频插入到视频中相关的知识,希望对你有一定的参考价值。
参考技术A 最近有一个需求,需要将多个音频文件延时插入到一段视频中,经过学习,得到以下命令:-y -i videoSource.mp4 -i test1.mp3 -i test2.mp3 -i test3.mp3 -filter_complex [1]adelay=5000|5000=[s1];[2]adelay=15000|15000=[s2];[3]adelay=25000|25000=[s3];[0:a][s1][s2][s3]amix=4[a] -map 0:v -map [a] -c:v copy result.mp4
如果不需要视频原声,则修改命令为:
-y -i videoSource.mp4 -i test1.mp3 -i test2.mp3 -i test3.mp3 -filter_complex [1]adelay=5000|5000=[s1];[2]adelay=15000|15000=[s2];[3]adelay=25000|25000=[s3];[s1][s2][s3]amix=3[a] -map 0:v -map [a] -c:v copy result.mp4
以上命令为android使用,如果需要在windows使用,则需要修改为:
-y -i videoSource.mp4 -i test1.mp3 -i test2.mp3 -i test3.mp3 -filter_complex "[1]adelay=5000|5000=[s1];[2]adelay=15000|15000=[s2];[3]adelay=25000|25000=[s3];[s1][s2][s3]amix=3[a]" -map 0:v -map "[a]" -c:v copy result.mp4
其中
[1]adelay=5000|5000=[s1]的意思为:取第二个输入文件的音轨(下标从0开始)并延时5000毫秒
[0:a]的意思为:第一个输入文件的音频资源
ffmpeg:如何将音频波文件循环到没有任何音频通道的视频中
【中文标题】ffmpeg:如何将音频波文件循环到没有任何音频通道的视频中【英文标题】:ffmpeg: How to loop audio wave file into a video which has no any audio channel 【发布时间】:2020-08-25 18:31:15 【问题描述】:如何使用 ffmpeg 将音频波或 mp3 文件循环到没有任何音频通道的视频中?
这是我的代码已经适用于已经有音频通道的视频文件。
ffmpeg -i somevideoinput.mp4 -stream_loop -1
-i will_be_looped.wav
-vcodec copy
-max_muxing_queue_size 9999
-shortest
-fflags +shortest -max_interleave_delta 200M
-map 0:0 -map 1:0
output.mp4
用循环输入波形文件替换视频的 auido 频道。但是如果视频已经没有任何音频通道,它就不起作用了。
你知道吗?也许我要添加一些 filter_complex 参数?
【问题讨论】:
【参考方案1】:-stream_loop
是输入选项,所以必须在-i
之前使用:
ffmpeg -i somevideoinput.mp4 -stream_loop -1 -i will_be_looped.wav
-vcodec copy
-max_muxing_queue_size 9999
-shortest
-fflags +shortest -max_interleave_delta 200M
-map 0:v -map 1:a
output.mp4
我还更改了-map
选项以使用流说明符来确保它选择正确的流。
【讨论】:
@KursatTurkay 一本书是FFmpeg Basics,但我对内容不熟悉。 “如果输入电影还没有音频通道,仍然没有音频”。应该有音频,因为-map
正在从will_be_looped.wav
中选择音频。为了能够理解问题,我需要查看您的 ffmpeg
命令以及该命令的完整日志。您可以edit您的问题以包含此信息。
gr8 man
@KursatTurkay 看看FFmpeg Wiki补充官方documentation。以上是关于使用ffmpeg 将多个音频插入到视频中的主要内容,如果未能解决你的问题,请参考以下文章
使用 FFmpeg 将一个视频处理为多个输出会导致最后一个输出中没有音频
ffmpeg:如何将音频波文件循环到没有任何音频通道的视频中
使用 ffmpeg 和 python 将视频中的所有音频流提取到单独的音频文件中