我可以在运行时映射(交换)通道吗?
我正在使用 ffmpeg 录制来自两个罗技摄像头/麦克风和蓝牙麦克风的视频和音频。现在,在录制开始时蓝牙处于关闭状态,两个罗技的音频都来自左声道和右声道。如果蓝牙处于开启状态,则只有蓝牙音频来自左声道,两个罗技音频都来自右声道。
再次关闭蓝牙时,左声道变为空白,两个罗技音频仅来自右声道。So if bluetooth is turned off then I wanted to replace the logitech audio to both the left_channel and right_channel.
此外,如果蓝牙已打开,则我将其设置为默认值,我使用以下命令将其设置为默认值:
pacmd set-default-source bluez_source.00_1D_DF_44_DB_A6 > /dev/null
另外,如果蓝牙关闭,我会将罗技设置为默认设置。我使用以下命令将其设置为默认设置:
pacmd set-default-source alsa_input.usb-046d_0823_D81A0330-00-U0x46d0x823_1.analog-stereo > /dev/null
我使用以下 ffmpeg 命令来录制音频和视频。如果在开始时 bletooth 处于关闭状态,则会生成此命令:
ffmpeg -loglevel warning -y -f v4l2 -s 544x288 -i /dev/video0 -vstats -vstats_file '/home/left_cam-stats' -f pulse -name 'Unknown source 0' -i alsa_input.pci-0000_00_1b.0.analog-stereo -filter lowpass -f pulse -name 'left_mic 0' -i alsa_input.usb-046d_0823_D81A0330-00-U0x46d0x823_1.analog-stereo -f pulse -name 'right_mic 1' -i alsa_input.usb-046d_0823_4B709030-00-U0x46d0x823.analog-stereo -f pulse -name 'default 0' -i default -f mpegts -crf 20 -r 24 -pix_fmt yuv420p -vcodec libx264 -vprofile baseline -t 02:00:00 -map 0:0 -map 1:0 -map 2:0 -map 3:0 -map 4:0 /home/left_cam.mp4
如果启动时蓝牙处于打开状态,则会生成以下 ffmpeg 命令:
ffmpeg -loglevel warning -y -f v4l2 -s 544x288 -i /dev/video0 -vstats -vstats_file '/home/left_cam-stats' -f pulse -name 'Unknown source 0' -i alsa_input.pci-0000_00_1b.0.analog-stereo -filter lowpass -f pulse -name 'left_mic 0' -i alsa_input.usb-046d_0823_D81A0330-00-U0x46d0x823_1.analog-stereo -f pulse -name 'right_mic 1' -i alsa_input.usb-046d_0823_4B709030-00-U0x46d0x823.analog-stereo -f pulse -name 'default 0' -i bluez_source.00_1D_DF_44_DB_A6 -f mpegts -crf 20 -r 24 -pix_fmt yuv420p -vcodec libx264 -vprofile baseline -t 02:00:00 -map 0:0 -map 1:0 -map 2:0 -map 3:0 -map 4:0 /home/left_cam.mp4
如果蓝牙关闭,我想将罗技音频替换为左通道和右通道;如果蓝牙打开,则仅使用左通道的蓝牙音频和右通道的两个罗技音频。