使用FFmpeg 做混剪软件的命令解释
2025-07-16 19:31:07 108 分享链接 开发笔记 ffmpeg
ffmpeg -f concat -safe 0 -i videos_to_concat.txt -i D:/XiaoShuo/0007.东宫岁月/start/0007.mp3 -i D:/XiaoShuo/0007.东宫岁月/bgm/001.mp3 -filter_complex [1:a]volume=1.5[a1];[2:a]volume=0,atrim=end=894.816,asetpts=PTS-STARTPTS[a2];[a1][a2]amix=inputs=2:duration=first[aout] -map 0:v -map [aout] -cq 18 -gpu 0 -vf scale=1080:1920,subtitles=D\\:/XiaoShuo/0007.东宫岁月/start/0007.srt:original_size=1080x1920:fontsdir=D\\:/DevPythons/mixedEditor/font:force_style='FontName=HelloFont ID JiangHuTi,FontSize=7,PrimaryColour=&H00FFFFFF,Spacing=1,Outline=0.5,OutlineColour=&H10000000,BorderStyle=0,BackColour=&H80000000,Shadow=0,Alignment=2,MarginV=210' -c:v h264_nvenc -b:v 12M -r 60 -c:a aac -b:a 128k -t 894.816 -preset medium -y D:/XiaoShuo/0007.东宫岁月/start/0007.mp4以下是对这个 FFmpeg 命令中各个参数的详细解释:
输入相关参数
ffmpeg -f concat -safe 0 -i videos_to_concat.txt -i D:/XiaoShuo/0007.东宫岁月/start/0007.mp3 -i D:/XiaoShuo/0007.东宫岁月/bgm/001.mp3-f concat:指定输入文件的格式为拼接列表。concat格式允许你通过一个文本文件来指定多个视频文件,以便将它们按顺序拼接在一起。-safe 0:禁用安全模式。在使用concat格式时,默认情况下 FFmpeg 会检查文件路径是否为相对路径,以防止潜在的安全风险。设置为0则允许使用绝对路径。-i videos_to_concat.txt:指定拼接列表文件的路径。该文件包含了要拼接的视频文件的路径列表。-i D:/XiaoShuo/0007.东宫岁月/start/0007.mp3:指定第一个音频文件的路径,这个音频文件将作为主音频。-i D:/XiaoShuo/0007.东宫岁月/bgm/001.mp3:指定第二个音频文件的路径,这个音频文件将作为背景音乐(BGM)。
音频处理参数
-filter_complex [1:a]volume=1.5[a1];[2:a]volume=0,atrim=end=894.816,asetpts=PTS-STARTPTS[a2];[a1][a2]amix=inputs=2:duration=first[aout]-filter_complex:用于指定复杂的音频和视频滤镜图。这里使用了多个滤镜来处理音频。[1:a]volume=1.5[a1]:对第二个输入文件(索引为1)的音频流应用volume滤镜,将音量放大到原来的1.5倍,并将处理后的音频流命名为[a1]。[2:a]volume=0,atrim=end=894.816,asetpts=PTS-STARTPTS[a2]:对第三个输入文件(索引为2)的音频流进行处理。首先将音量设置为0,然后使用atrim滤镜将音频时长裁剪到894.816秒,最后使用asetpts滤镜重置时间戳,并将处理后的音频流命名为[a2]。[a1][a2]amix=inputs=2:duration=first[aout]:使用amix滤镜将[a1]和[a2]两个音频流混合在一起。inputs=2表示有两个输入音频流,duration=first表示以第一个输入音频流(即[a1])的时长为准,最终输出的音频流命名为[aout]。
映射参数
-map 0:v -map [aout]-map 0:v:将第一个输入文件(索引为0)的视频流映射到输出文件中。-map [aout]:将之前通过滤镜处理得到的音频流[aout]映射到输出文件中。
视频编码器参数
-cq 18 -gpu 0-cq 18:这是h264_nvenc编码器的参数,用于控制视频质量。cq表示恒定质量(Constant Quality),取值范围为0-51,较低的值表示更高的质量,但文件大小也会更大。这里设置为18,表示较高的视频质量。-gpu 0:显式指定使用编号为0的 GPU 进行编码。
视频滤镜参数
-vf scale=1080:1920,subtitles=D\\:/XiaoShuo/0007.东宫岁月/start/0007.srt:original_size=1080x1920:fontsdir=D\\:/DevPythons/mixedEditor/font:force_style='FontName=HelloFont ID JiangHuTi,FontSize=7,PrimaryColour=&H00FFFFFF,Spacing=1,Outline=0.5,OutlineColour=&H10000000,BorderStyle=0,BackColour=&H80000000,Shadow=0,Alignment=2,MarginV=210'-vf:指定视频滤镜。这里使用了两个滤镜,用逗号分隔。scale=1080:1920:使用scale滤镜将视频的分辨率调整为1080x1920。subtitles=...:使用subtitles滤镜将字幕文件嵌入到视频中。具体参数解释如下:D\\:/XiaoShuo/0007.东宫岁月/start/0007.srt:指定字幕文件的路径。original_size=1080x1920:指定视频的原始分辨率,用于字幕的定位和布局。fontsdir=D\\:/DevPythons/mixedEditor/font:指定字体文件所在的目录。force_style=...:指定字幕的样式,包括字体名称、字体大小、字体颜色、字符间距、描边像素、描边颜色、字幕背景框、背景框颜色、阴影偏移、字幕对齐方式和字幕垂直偏移量等。
编码参数
-c:v h264_nvenc -b:v 12M -r 60 -c:a aac -b:a 128k-c:v h264_nvenc:指定视频编码器为h264_nvenc,这是 NVIDIA 的硬件编码器,可利用 GPU 进行加速编码。-b:v 12M:指定视频的比特率为12M,即每秒12兆比特,用于控制视频的质量和文件大小。-r 60:指定视频的帧率为60帧每秒。-c:a aac:指定音频编码器为AAC,这是一种常用的音频编码格式。-b:a 128k:指定音频的比特率为128k,即每秒128千比特。
时长和预设参数
-t 894.816 -preset medium -y-t 894.816:指定输出视频的时长为894.816秒,即截取指定时长的视频。-preset medium:指定编码的预设参数,用于控制编码速度与压缩效率的平衡。medium表示中等速度和压缩效率。-y:覆盖已存在的输出文件,无需用户确认。
输出文件参数
D:/XiaoShuo/0007.东宫岁月/start/0007.mp4指定输出文件的路径和文件名,这里输出的是一个 MP4 格式的视频文件。
综上所述,这个 FFmpeg 命令的主要功能是将多个视频文件拼接在一起,同时将两个音频文件混合作为输出视频的音频流,并添加字幕和调整视频的分辨率、质量等参数,最终生成一个 MP4 格式的视频文件。

最近更新
- 2025-09-22 01:46
- 可以直接在content.js里面写一个函数获取blob数据实现自定义下载吗?
- 2025-09-22 00:17
- background.js中可通过注入脚本的方法实现获取blobUrl实现自定义下载
- 2025-09-21 17:45
- 通过MutationObserver 开发chrome浏览器扩展的实例
- 2025-09-21 17:23
- MutationObserver实例中mutation.type为childList时addedNodes节点的遍历方法。
- 2025-09-21 17:21
- MutationObserver实例中mutation.type为childList时addedNodes节点的筛选方法。
- 2025-09-21 17:09
- MutationObserver实例中mutation.type为childList时addedNodes节点具体的方法与属性。
- 2025-09-21 16:56
- MutationObserver实例中mutation.type突变类型为childList时有哪些属性、方法?
- 2025-09-21 16:46
- MutationObserver实例中mutation三种不同突变类型的属性与方法?
- 2025-09-21 16:34
- MutationObserver实例中mutation.type突变类型为attributes时有哪些属性、方法?
- 2025-09-15 18:42
- 用豆包图像生成的功能批量创作小说推文的提示词