用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 是这个处理后的音频流的标签。

    调整背景音乐音量及时间戳:

  • 2:a\]volume=0.5,asetpts=PTS-STARTPTS\[a_music

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

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

    同样使用asetpts重置时间戳。

    a_music 标记处理后的音频流。

    音频混合:

  • a_voice\]\[a_music\]amix=inputs=2:duration=first\[audio_mixed

    a_voicea_music 被送入amix滤镜进行混合。

    inputs=2 指明有两个输入流参与混合。

    duration=first 确保混合后的音频长度与第一个输入(a_voice)相同,这样如果voice.mp3的长度与视频匹配,则音频不会过长。

    字幕叠加到视频:

  • 0:v\]subtitles='D:/test/voice.srt':force_style='Fontsize=24,Fontcolor=white'\[vout

    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的时长来输出一个包含调整音量的语音、背景音乐和字幕的最终视频文件。

相关推荐
鲲穹AI全能助理10 小时前
实用音频合成工具分享:灵境配音 使用场景与功能说明
ffmpeg·音视频
AI2中文网11 小时前
App Inventor 2 音频播放器 vs 音效 vs 视频播放器:三个媒体组件,选错了App直接卡死
android·音视频·媒体
王小王-12311 小时前
基于B站的视频分析系统——面向美食视频内容生态的多源数据分析与可视化系统
数据分析·音视频·美食·视频分析·b站数据分析·b站弹幕分析
我是Superman丶13 小时前
Windows系统FFmpeg官方下载+完整安装配置保姆级教程(2026最新版)
windows·ffmpeg
民乐团扒谱机1 天前
【全流程实战】LibTV节点式AI视频工作流落地教程|从剧本到成片可复用流水线,新手/开发者双版本
人工智能·音视频
私人珍藏库1 天前
[Android] 美颜通 -实时视频通话直播美颜
智能手机·app·音视频·软件·多功能
lpfasd1231 天前
火山引擎 TOS 视频 `Content-Disposition: attachment` 排查实录
音视频·火山引擎
byte轻骑兵1 天前
【LE Audio】CSIS精讲[1]: 从核心定义到协议基础,读懂多设备协同的底层逻辑
人工智能·音视频·人机交互·蓝牙耳机·le audio·低功耗蓝牙音频
中微极客1 天前
从提示词到产品级视频:生成式AI的工程化实践与工具栈选型(LTX Studio实战)
人工智能·chatgpt·音视频
luoyayun3612 天前
Qt + FFmpeg 视频工具:视频一键压缩功能实现
qt·ffmpeg·音视频·视频压缩