ffmpeg 多mp3 声音 两路 h264 数据输入合成视频源代码
时间: 2024-01-23 19:10:07 浏览: 167
以下是一个示例代码,用于合成两个mp3音频和两个h264视频数据输入的视频:
```
ffmpeg -i input1.mp3 -i input2.mp3 -i input1.h264 -i input2.h264 \
-filter_complex "[0:a][1:a]amerge=inputs=2[a]; \
[2:v][3:v]hstack=inputs=2[v]" \
-map "[a]" -map "[v]" \
-c:v libx264 -preset ultrafast -crf 23 -c:a aac -b:a 256k \
output.mp4
```
解释:
- `-i input1.mp3 -i input2.mp3 -i input1.h264 -i input2.h264`:指定四个输入文件,分别为两个mp3音频和两个h264视频数据。
- `-filter_complex`:指定复杂滤镜图。其中,`[0:a][1:a]amerge=inputs=2[a]`表示将两个音频流合并为一个,命名为`[a]`;`[2:v][3:v]hstack=inputs=2[v]`表示将两个视频流水平合并为一个,命名为`[v]`。
- `-map "[a]" -map "[v]"`:指定输出文件的音频和视频流来源,分别为`[a]`和`[v]`。
- `-c:v libx264 -preset ultrafast -crf 23 -c:a aac -b:a 256k`:指定输出文件的视频编码器为libx264,预设值为ultrafast,视频质量为crf 23,音频编码器为aac,码率为256k。
- `output.mp4`:指定输出文件名为output.mp4。
注意事项:
- 输入文件的音频和视频流数必须相同。
- 多个输入文件的音频和视频流的命名应该不同,以便在复杂滤镜图中区分。
- 输出文件的音频和视频流来源必须与复杂滤镜图中指定的命名相同。
阅读全文