同时执行两个 FFMPEG 命令

同时执行两个 FFMPEG 命令

我想将两个视频多播到多播地址的两个不同端口。我可以一次将一个视频发送到一个端口。但我想要一个命令,让两个视频同时发送到端口。我使用了命令

{ffmpeg -i  stream1_small.ts -vcodec copy -acodec copy -f mpegts -re "udp://239.101.101.1:1234?ttl=1&pkt_size=1316" &
ffmpeg -i  stream2_small.ts -vcodec copy -acodec copy -f mpegts -re "udp://239.101.101.1:1235?ttl=1&pkt_size=1316" &}

当我执行命令时,stream2_small.ts 被流式传输到端口 1235,但 stream1_small.ts 给出错误,因为

Output #0, mpegts, to 'udp://239.101.101.1:1234?ttl=1&pkt_size=1315
':
  Metadata:
    encoder         : Lavf53.4.0
    Stream #0.0: Video: mpeg2video, yuv420p, 360x180 [PAR 8:9 DAR 16:9], q=2-31, 104857 kb/s, 90k tbn, 25 tbc
    Stream #0.1(eng): Audio: ac3, 48000 Hz, stereo, 96 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop, [?] for help
[mpegts @ 0xaacc360] max_analyze_duration 5000000 reached at 5000000

请告诉我我犯了什么错误

答案1

我不确定这个错误是什么,但是:

  • 您是否尝试过分别执行每个命令 - 它们实际上都有效吗?
  • 您是否尝试过并行运行它们,但每个都在自己的 shell 中?

但是,可以使用一个 ffmpeg 命令来传输它们。假设每个输入都有一个视频流和一个音频流:

ffmpeg
  -i stream1_small.ts
  -i stream2_small.ts
  -vcodec copy -acodec copy -f mpegts -re "udp://239.101.101.1:1234?ttl=1&pkt_size=1316" -map 0.0 -map 0.1
  -vcodec copy -acodec copy -f mpegts -re "udp://239.101.101.1:1235?ttl=1&pkt_size=1316" -map 1.0 -map 1.1

相关内容