gpt4 book ai didi

opencv - 多个应用程序访问同一个 DeckLink 设备(openCV 和 rtmp 推送)?我有什么选择?

转载 作者:行者123 更新时间:2023-12-02 16:23:03 24 4
gpt4 key购买 nike

描述:
我有一个要求,我必须对来自 DeckLink 设备的单个摄像机流做两件事 - OpenCV 处理和 RTMP 实时流。如果相关,该设备是 DeckLink 8K Pro。
DeckLink 设备(一个特定端口)不允许多个应用程序访问视频流。我的两个申请是:

  • 必须在视频流上运行图像处理算法的 C++ OpenCV 应用程序。
  • 必须 RTMP 将流推送到远程端点的虚幻媒体服务器,该端点应将流重新分发给客户端。

  • 两个应用程序必须在同一个 Windows 工作站上运行。
    问题:
    如果其中一个应用程序正在运行,则它对视频流具有独占访问权,而另一个应用程序无法读取该流,并且似乎没有解决此问题的方法。
    所以,我真的在寻找一个聪明的解决方案,你们中的一些人之前可能已经实现过,或者有一个可能对我有用的想法。
    到目前为止我的解决方案:
    在这个解决方案中,Unreal Media Server 被 FFMPEG 取代。
    由于在此处发布之前必须将 OP 的努力投入到解决方案中,因此过去一周我一直在浏览可能的解决方案。我想出了一个基于 FFMPEG 的解决方案,它是唯一可以读取 DeckLink 视频流并在一个命令中完成两件事的应用程序 - 通过 RTMP 推送视频数据包并创建本地 UDP 流。而且,OpenCV 的 VideoCapture 类能够获取 UDP 流。对于测试,我使用 Twitch 作为 RTMP 服务器,使用 VLC 作为 UDP 测试器。它可以工作,而且似乎是一个很好的解决方案,除了 UDP 流中引入的延迟约为 0.4 秒。不幸的是,我无法评估 RTMP 延迟,因为 Twitch 自己引入了超过 5 秒的延迟。但这暂时不是问题。
    这是 FFMPEG 解决方案(注意我在这里使用的是计算机网络摄像头,但 DeckLink 也是如此)。
    通过:
    ffmpeg -threads:v 2 -threads:a 8 -filter_threads 2 -thread_queue_size 512 -y -f dshow -video_size 640x480 -pixel_format yuyv422 -framerate 30 -rtbufsize 100M -i video="HD WebCam" -f dshow -rtbufsize 100M -i audio="Microphone Array (Realtek High Definition Audio(SST))" -preset ultrafast -vcodec libx264 -tune zerolatency -b 900k -map 0:v:0 -f mpegts udp://127.0.0.1:5555 -pix_fmt yuv420p -c:v libx264 -qp:v 19 -profile:v high -rc:v cbr_ld_hq -level:v 4.2 -r:v 60 -g:v 120 -bf:v 3 -refs:v 16 -f flv rtmp://live-fra05.twitch.tv/app/stream_key
    播放方式:
    ffplay -probesize 32 -sync ext udp://127.0.0.1:5555
    我想听听您将如何改进我自己的解决方案以更好地解决问题(例如减少延迟),或者您是否有比我更好的解决方案。
    提前致谢。

    最佳答案

    流到达 Unreal Media Server 后,您可以使用 Unreal Media Server Configurator 启动 MPEG2-TS 广播该流。然后您的 OpenCV 的 VideoCapture 类也将能够获取该 MPEG2-TS UDP 流。

    关于opencv - 多个应用程序访问同一个 DeckLink 设备(openCV 和 rtmp 推送)?我有什么选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63611904/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com