我一直在尝试收集来自不同脉冲源和 x11grab 视频的音频,以便将其中一些合并在一起。最终,所有内容都将推送到AWS IVS
这是将音频推送到不同设备的 html。我的 HTML 代码
ffmpeg -y\
-hide_banner -loglevel error \
-nostdin \
-s ${SCREEN_RESOLUTION} \
-r ${VIDEO_FRAMERATE} \
-draw_mouse 0 \
-f x11grab \
-i ${DISPLAY} \
-f pulse -i MySink.monitor \
-f pulse -i MySink2.monitor \
-c:v libx264 \
-pix_fmt yuv420p \
-profile:v main \
-preset veryfast \
-x264opts "nal-hrd=cbr:no-scenecut" \
-minrate ${VIDEO_BITRATE} \
-maxrate ${VIDEO_BITRATE} \
-g ${VIDEO_GOP} \
-filter_complex \
"adelay=delays=1000|1000;[1:a][2:a]amerge=inputs=2[1_2]"\
-map 0 0.mp4\
-map 2 2.flv \
-map 0 -map 1 0_1.mp4 \
-map 0 -map 2 0_2.mp4 \
-map 0:v -map "[1_2]":a:0 -f flv ${RTMP_URL1}\
-map 0:v -map 1:a:0 -f flv ${RTMP_URL2}\
以上代码推送至 IVS 但视频空白,无音频。
-filter_complex \
"adelay=delays=1000|1000"\
-f flv ${RTMP_URL1}\
当我删除地图并像上面一样推送到 rtmp 时,视频只能播放音频 0,这是错误的。 我猜问题出在 rtmp 的 map 上。我该如何将它们一起使用?
第二个问题: 如果我再次使用“[1_2]”,它会给我:
带有标签“1_2”的输出不存在于任何定义的过滤器图中,或已在其他地方使用
像下面这样分裂
-filter_complex \
"adelay=delays=1000|1000;[1:a][2:a]amerge=inputs=2[1_2];split [main][tmp];"\
-map 0:v -map "[main]":a:0 -f flv ${RTMP_URL1}\
-map 0:v -map "[tmp]":a:0 -f flv 0_1_2.flv\
然后这个错误出现了
没有这样的过滤器:''
答案1
我已经修复了这个问题,所以也许有人会需要它。下面的解决方案由于多次编码而性能不佳
ffmpeg -y\
-hide_banner -loglevel error \
-nostdin \
-s ${SCREEN_RESOLUTION} \
-r ${VIDEO_FRAMERATE} \
-draw_mouse 0 \
-f x11grab \
-i ${DISPLAY} \
-f pulse -i MySink1.monitor \
-f pulse -i MySink2.monitor \
-f pulse -i MySink3.monitor \
-f pulse -i MySink4.monitor \
-c:v libx264 \
-pix_fmt yuv420p \
-profile:v main \
-preset veryfast \
-minrate ${VIDEO_BITRATE} \
-maxrate ${VIDEO_BITRATE} \
-g ${VIDEO_GOP} \
-map 0 -f flv -map 1 ${RTMP_URL1} \
-c:v libx264 \
-pix_fmt yuv420p \
-profile:v main \
-preset veryfast \
-minrate ${VIDEO_BITRATE} \
-maxrate ${VIDEO_BITRATE} \
-g ${VIDEO_GOP} \
-map 0 -f flv -map 2 ${RTMP_URL2} \
-c:v libx264 \
-pix_fmt yuv420p \
-profile:v main \
-preset veryfast \
-minrate ${VIDEO_BITRATE} \
-maxrate ${VIDEO_BITRATE} \
-g ${VIDEO_GOP} \
-map 0 -f flv -map 3 ${RTMP_URL3} \
-c:v libx264 \
-pix_fmt yuv420p \
-profile:v main \
-preset veryfast \
-minrate ${VIDEO_BITRATE} \
-maxrate ${VIDEO_BITRATE} \
-g ${VIDEO_GOP} \
-map 0 -f flv -map 4 ${RTMP_URL4} \
````