FFmpeg;两个通道在传输过程中失去同步?

FFmpeg;两个通道在传输过程中失去同步?

当我使用 FFmpeg 将立体声音轨(仅音频)从(互联网)位置 A 传输到 B 时遇到问题。问题在于左右声道相对于彼此的时间移位,此时间移位约为 12 毫秒。

我确实使用以下设置进行了测量:

传输端:Audacity/节拍器函数产生脉冲(1/秒),将 Audacity 的输出并行馈送到两个 FFmpeg(jack-)输入通道,使用以下 FFmpeg 命令脚本:

ffmpeg  -hide_banner \
        -loglevel verbose \
        -f jack -channels 1 -thread_queue_size 1024 -i Tonmeister_mic1 \
        -f jack -channels 1 -thread_queue_size 1024 -i Tonmeister_mic2 \
        -map 0 \
        -map 1 \
        -codec:a libopus \
        -b:a 128k \
        -vbr on \
        -packet_loss 10 \
        -fec on \
        -compression_level 10 \
        -frame_duration 20 \
        -application audio \
        -f mpegts \
        udp://xxx.xxx.xxx.xxx:4524

接收端:使用以下命令将传入的流直接写入磁盘:

ffmpeg -hide_banner -loglevel verbose -thread_queue_size 64 -i udp://127.0.0.1:4524 -map 0 -filter_complex “[0:a:0][0:a:1]amerge=inputs=2” metronome_at_Uli.wav

然后在 Audacity 中加载该文件来可视化两个(传入)通道。

传入信号已发生时移???

图片清楚地显示了在 (FFmpeg) 传输过程中两个通道之间引入的 12 毫秒的时间偏移。

我做错了什么?可以做些什么来解决这个问题?

注:发送端运行 Ubuntu 20.04.6 LTS,FFmpeg 版本 4.2.7-0ubuntu0.1 。接收端:MacOS Big Sur,11.7.1,FFmpeg 版本 5.1.2

注意:我打算使用此技术通过一个流/udp 通道传输 10 - 15 个单声道。

相关内容