FFMPEG合并源

时间:2019-02-01 20:09:56

标签: ffmpeg concat

我无法正确创建.MKV输出文件。

此处的目标是能够支持视频输入和两个单独的音频源(在这种情况下,它们是单声道音频麦克风)-目标是将音频记录源和视频源组合为单个.MKV从两个单声道设备混合创建的具有2声道立体声的音频文件。

我到目前为止的代码如下:

ffmpeg -f dshow -video_size 1280x720 -framerate 30 -rtbufsize 700200k -i video="Logitech HD Pro Webcam C920" -r 30000/1001 -f dshow -channels 1 -i audio="Microphone (USB PnP Audio Device)" -f dshow -channels 1 -i audio="Microphone (3- USB PnP Audio Device)" -b:a 192k -ar 48000 -filter_complex "[0:1][1:0][2:0]concat=n=3:v=1:a=1[v][a]" -map "[v]" -flags +global_header -profile:v main -pix_fmt yuv420p -c:v libx264 -map "[a]" -c:a aac -ar 48000 -ac 2 -f tee "test.mkv | test2.mkv | [f=mpegts]udp://localhost:4000" -filter_complex "[0:a]astats=metadata=1:reset=1,ametadata@VUone=print:key=lavfi.astats.1.RMS_level[0a];[1:a]astats=metadata=1:reset=1,ametadata@VUTwo=print:key=lavfi.astats.1.RMS_level[1a];[0a][1a]amerge=inputs=2[aout]" -map "[aout]" -acodec flac -f tee "test.flac | test2.flac"

但是我遇到以下错误...

  

从'video = Logitech HD Pro Webcam C920'输入#0,dshow:     持续时间:N / A,开始:15120.108000,比特率:N / A       流#0:0:视频:原始视频,bgr24、1280x720、30 fps,30 tbr,10000k tbn,10000k tbc   猜测输入流#1.0的通道布局:单声道   从“音频=麦克风(USB PnP音频设备)”输入#1,dshow:     持续时间:N / A,开始:15120.307000,比特率:705 kb / s       流#1:0:音频:pcm_s16le,44100 Hz,单声道,s16,705 kb / s   猜测输入流#2.0的通道布局:单声道   从音频=麦克风(3- USB PnP音频设备)'输入#2,dshow:     持续时间:N / A,开始:15120.976000,比特率:705 kb / s       流#2:0:音频:pcm_s16le,44100 Hz,单声道,s16,705 kb / s   过滤器描述[0:0] [1:0] [2:0] concat = n = 3:v = 1:a = 1 [v] [a]中的流说明符“:0”与任何流均不匹配。

我不确定我在做什么错,因为至少从我看来,这看起来应该是合理的。来自第一输入的第一流将是视频流,是吗?

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

通过joinamerge过滤器,您可以将两个单声道输入混合到立体声输出。简化示例:

加入

ffmpeg -i video -i mic1 -i mic2 -filter_complex "[1][2]join=inputs=2:channel_layout=stereo[a]" -map 0:v -map "[a]" output

合并

ffmpeg -i video -i mic1 -i mic2 -filter_complex "[1][2]amerge=inputs=2[a]" -map 0:v -map "[a]" -ac 2 output