使用 FFMpeg 通过 5G Wifi 将摄像机输入流传输到多播地址

使用 FFMpeg 通过 5G Wifi 将摄像机输入流传输到多播地址

我正在尝试将我的英特尔实感 D435 RGB 摄像头输入传输到我的网络上的多播地址。

请注意,视频流、编码对我来说很新 - 我不太了解,在解释解决方案时,请给我一些额外的细节,谢谢:)

我的硬件设置:

  • Intel RealSense D435(带 USB Type-C 连接器)

  • Raspberry Pi 4(4GB Ram)(服务器)

  • 5G 有线 Wifi 路由器(提及详细信息)

首先,问题是什么:

当尝试/dev/video4使用 ( 将我的 (RBG 输入) 传输到网络时全力输出):

ffmpeg -f v4l2 -input_format yuyv422 -video_size 1280x720 -i /dev/video4 -c:v h264_omx -pix_fmt yuv420p -s 1280x720 -r 30 -g 60 -f mpegts udp://238.0.0.1:5000

然后客户端我尝试使用 VLC 和 ffplay 查看流。

  • 甚高频液晶

在单独的网络客户端上使用 VLC,网络流udp://238.0.0.1:5000无限加载,没有图片(我尝试在 pi 上向本地主机进行流式传输,但在使用udp://127.0.0.1: 5000ffmpeg 流的本地主机上也没有显示)。

  • 飞飞游戏

在单独的网络客户端上检测到了 FFPlay 流,但给出了使用时的错误输出ffplay udp://238.0.0.1:5000

我为什么要使用h264_omx

Raspberry Pi 具有硬件编码能力,为了利用这一点,我配置了 ffmpeg

  --enable-omx \
  --enable-mmal \
  --enable-omx-rpi \

(所有命令均未注释)是我使用的安装脚本,改编自

我能通过网络获取照片吗

是的,但存在问题。视频非常非常不连贯,质量极差。为了实现这一点,我ffplay在单独的网络客户端上使用了与上述相同的命令,使用的服务器命令是 SW 编码器libx264服务器完整输出) 和 (客户端完整输出):

ffmpeg -f v4l2 -input_format yuyv422 -video_size 1280x720 -i /dev/video4 -c:v libx264 -pix_fmt yuv420p -s 1280x720 -r 30 -g 60 -f mpegts udp://238.0.0.1:5000

真正让我困扰的是,在启动客户端和服务器后,我等了 25 秒才用上述命令获取图片。

此外,这是我迄今为止遇到的一个主要问题,我的流媒体延迟了 5-7 秒——我知道高清编码可能会有帮助,而且网络传播需要时间,但在小型 5G 网络上,我不应该等待 7 秒才能看到质量较差(几乎 144p @ 5-10fps)的视频流

在 IRC 上诊断此问题时,我被要求提供以下信息:

  • ffmpeg -f v4l2 -list_formats all -i /dev/video4 结果

  • v4l2-ctl --list-devices

    pi@raspberrypi:~ $ v4l2-ctl --list-devices
    bcm2835-codec-decode (platform:bcm2835-codec):
        /dev/video10
        /dev/video11
        /dev/video12
    
    Intel(R) RealSense(TM) Depth Ca (usb-0000:01:00.0-2):
        /dev/video0
        /dev/video1
        /dev/video2
        /dev/video3
        /dev/video4
        /dev/video5
    
  • v4l2-ctl --list-formats

    pi@raspberrypi:~ $ v4l2-ctl --list-formats
    ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture
    
        [0]: 'Z16 ' (16-bit Depth)
        [1]: '' (00000050-0000-0010-8000-00aa003)
    
  • ffmpeg -encoders | grep h264 全力输出

     V..... libx264              libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
     V..... libx264rgb           libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
     V..... h264_omx             OpenMAX IL H.264 video encoder (codec h264)
     V..... h264_v4l2m2m         V4L2 mem2mem H.264 encoder wrapper (codec h264)
    

    V.....h264_vaapi H.264/AVC (VAAPI) (编解码器 h264)

  • ffmpeg -encoders | grep h264 全力输出

     VFS..D h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
     V..... h264_v4l2m2m         V4L2 mem2mem H.264 decoder wrapper (codec h264)
     V..... h264_mmal            h264 (mmal) (codec h264)
    

是什么阻止我通过网络获取高质量的 720p 图像,以及是什么导致了这 5-7 秒的延迟(即使添加了 -g 60 之后也是如此)这里

相关内容