基于ffmpeg的视频反馈环路

基于ffmpeg的视频反馈环路,ffmpeg,video-streaming,feedback,Ffmpeg,Video Streaming,Feedback,我试图在两台计算机之间创建一个数字视频反馈回路 我的意思是: 我尝试了几种协议和视频格式的组合,我发现这是我能得到的最接近的。原始视频是一个“mov”,但我不得不将其转换为.ts以达到这一目的,在使用mov或mp4时还有其他问题 我按此顺序运行命令,以确保tcp侦听器在客户端之前已启动 在本地计算机上 在远程计算机上 结果是命令挂起等待udp端口上的数据,这在事后看来是有意义的 我想知道: 这能做到吗?如果是,我需要改变什么 我是否需要放弃ffmpeg来完成这项任务,并研究其他内容 如果你

我试图在两台计算机之间创建一个数字视频反馈回路

我的意思是:

我尝试了几种协议和视频格式的组合,我发现这是我能得到的最接近的。原始视频是一个“mov”,但我不得不将其转换为.ts以达到这一目的,在使用mov或mp4时还有其他问题

我按此顺序运行命令,以确保tcp侦听器在客户端之前已启动

在本地计算机上 在远程计算机上 结果是命令挂起等待udp端口上的数据,这在事后看来是有意义的

我想知道:

  • 这能做到吗?如果是,我需要改变什么
  • 我是否需要放弃ffmpeg来完成这项任务,并研究其他内容
如果你问我为什么要这样做,答案是除了我想知道这是否可能以及它会产生什么结果之外,没有什么好的理由

# Command 1: Temporary attempt to capture output of loop
ffmpeg -i 'udp://0.0.0.0:6002?listen&overrun_nonfatal=1' -c copy out.ts
# Command 2: Receives stream from remote host and forwards back to beginning of loop
ffmpeg -i tcp://0.0.0.0:6001?listen -f mpegts udp://localhost:6002
#  Command 3: Receives stream from local host and returns stream to another ffmpeg instance
ffmpeg -i tcp://0.0.0.0:6000?listen -f mpegts tcp://<local.ip>:6001
# Command 4: Sends stream to remote host
ffmpeg -re -i in.ts  -f mpegts tcp://<remote.ip>:6000
 ffmpeg \
    -re -i in.ts -i udp://0.0.0.0:6002 \
    -filter_complex " \
        [0:v]setpts=PTS-STARTPTS, scale=540x960[top]; \
        [1:v]setpts=PTS-STARTPTS, scale=540x960, \
             format=yuva420p,colorchannelmixer=aa=0.5[bottom]; \
        [top][bottom]overlay=shortest=1" \
    -f mpegts tcp://<remote.ip>:6000