用ffmpeg对视频添加语音、背景音乐和字幕的方法

先看代码:

bash 复制代码
ffmpeg.exe ^
-i "D:/test/video.mp4" ^
-i "D:/test/voice.mp3" ^
-i "D:/test/music.mp3" ^
-i "D:/test/voice.srt" ^
-filter_complex "[1:a]volume=1.0,asetpts=PTS-STARTPTS[a_voice];[2:a]volume=0.5,asetpts=PTS-STARTPTS[a_music];[a_voice][a_music]amix=inputs=2:duration=first[audio_mixed];[0:v]subtitles='D\:/test/voice.srt':force_style='Fontsize=24,Fontcolor=white'[vout]" ^
-map "[vout]" ^
-map "[audio_mixed]" ^
-c:v libx264 -crf 23 -preset veryfast -c:a aac -b:a 128k ^
-disposition:a:0 default ^
"D:/test/output_final.mp4"
以上代码成功完成了添加语音、背景音乐和字幕,完美。

再看解释:

这个复杂滤镜链由多个部分组成,用分号(;)分隔,每个部分负责处理不同的输入流或组合它们。

调整语音音量及时间戳:

  • 1:a\]volume=1.0,asetpts=PTS-STARTPTS\[a_voice

    1:a\] 指的是第二个输入文件(voice.mp3)的音频部分。 volume=1.0 设置音量为原始音量的100%(无增减)。 asetpts=PTS-STARTPTS 重置音频的时间戳,确保与视频同步。 最后 \[a_voice\] 是这个处理后的音频流的标签。 调整背景音乐音量及时间戳:

    类似地,处理第三个输入文件(music.mp3)的音频。

    volume=0.5 将音量设置为原始的一半。

    同样使用asetpts重置时间戳。

    a_music\] 标记处理后的音频流。 音频混合:

    a_voice\] 和 \[a_music\] 被送入amix滤镜进行混合。 inputs=2 指明有两个输入流参与混合。 duration=first 确保混合后的音频长度与第一个输入(\[a_voice\])相同,这样如果voice.mp3的长度与视频匹配,则音频不会过长。 字幕叠加到视频:

    0:v\] 表示第一个输入文件(video.mp4)的视频流。 subtitles='D:/test/voice.srt' 将指定的SRT字幕文件叠加到视频上。 force_style='Fontsize=24,Fontcolor=white' 设置字幕样式:字体大小为24,颜色为白色。 \[vout\] 标签表示处理后的视频流,包含叠加了字幕的视频。

    -map "[vout]" -map "[audio_mixed]" 指定最终输出使用哪些流:处理过的视频流[vout]和混合后的音频流[audio_mixed]。

    -t $(ffprobe ...) 动态获取视频的时长,并将其作为输出的持续时间,确保输出与源视频时长相符。

    其余参数涉及视频和音频的编码设置,如使用H.264编码器(-c:v libx264)、CRF值(-crf 23)、预设(-preset veryfast)、AAC音频编码(-c:a aac)和音频比特率(-b:a 128k)等,用于控制输出文件的质量和兼容性。

综上所述,这段命令通过精细的音频处理和视频字幕叠加,实现了按照video.mp4的时长来输出一个包含调整音量的语音、背景音乐和字幕的最终视频文件。

相关推荐
潜创微科技2 小时前
IT68353:双 DP1.4a+HDMI2.0 转 HDMI2.0 单芯片 KVM 切换方案
嵌入式硬件·音视频
沐禾安信3 小时前
同一画面,如何两个视频同时播放,两个方法
电脑·音视频·分屏·视频转换
500843 小时前
Conv + BN + ReLU 融合:省掉两次显存读写
flutter·架构·开源·wpf·音视频
爱睡懒觉的焦糖玛奇朵6 小时前
【从视频到数据集:焦糖玛奇朵的魔法工具Video To YOLO Dataset】
人工智能·python·学习·yolo·音视频
神秘的摄影师8 小时前
2026年AE音乐素材下载网站TOP5评测——短视频与自媒体创作者专属指南
音视频·媒体
2601_957786778 小时前
短视频矩阵系统的信号处理密码:用奈奎斯特采样定理破解“限流“黑箱
矩阵·音视频·信号处理
若兰幽竹10 小时前
【大模型应用】抖音爆款视频深度分析系统:流水线式AI逆向拆解流量密码,精准预测播放量!
人工智能·python·音视频·抖音爆款分析
网管NO.110 小时前
视频核心技术 08:播放器原理与秒开优化 —— 首帧链路、缓冲策略与卡顿根治
音视频
searchforAI11 小时前
视频画面里的PPT怎么提取?视频转图文讲义的实操教程
人工智能·学习·ai·aigc·powerpoint·音视频·贴图
视频号下载助手11 小时前
2026实测可用!全网视频无水印保存完整操作方法
音视频