第一个音频源来自摄像头麦克风(哪个太吵),另一个音频源来自作为背景的文件。
这是我的两个代码,它们运行得很好,但显然不能结合在一起:
将两个音频合并为一个流:
ffmpeg -f lavfi -i anullsrc -rtsp_transport tcp -i "rtsp://............." -stream_loop -1 -i /audio.m4a -filter_complex "[1:a][2:a]amix=duration=shortest[a]" -map 1:v -map "[a]" -c:v copy -b:a 320k -c:a aac -preset veryfast -f flv rtmp://a.rtmp.youtube.com/live2/.........
降低噪音:
-af "highpass=f=200, lowpass=f=3000"
有什么办法可以使这些工作协同起来吗?
答案1
组合命令:
ffmpeg -rtsp_transport tcp -i "rtsp://input" -re -stream_loop -1 -i audio.m4a -filter_complex "[0:a]highpass=f=200,lowpass=f=3000[mic];[mic][1:a]amix=duration=shortest[a]" -map 1:v -map "[a]" -c:v copy -b:a 320k -c:a aac -f flv "rtmp://a.rtmp.youtube.com/live2/<stream-key>"
变化:
- YouTube 需要音频,因此
-f lavfi -i anullsrc
经常用于为没有音频的输入创建静音音频。但是您有音频,所以不需要这样做。已删除。 - 添加
-re
到audio.m4a
实时速度。 - 您正在使用 进行流复制
-c:v copy
,因此-preset veryfast
被忽略。已删除。 - 您可以选择用 替换 lowpass 和 highpass
bandpass=f=1400:width_type=h:width=2800
。