首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ffmpeg和live555的流摄像头

使用ffmpeg和live555的流摄像头
EN

Stack Overflow用户
提问于 2014-06-16 16:03:35
回答 3查看 5K关注 0票数 1

我是live555的新手。

我想用ffmpeg作为编码器从家庭局域网后面的windows 7(64位)机器上通过广域网向运行在debian64位linux机器上的live555服务器传输我的网络摄像头。我想从ffmpeg发送一个H.264 RTP/UDP流,并且"testOnDemandRTSPServer“应该向连接到它的客户端发送RTSP流。

我使用以下ffmpeg命令将UDP数据发送到端口1234,IP地址AA.BB.CC.DD

代码语言:javascript
复制
.\ffmpeg.exe -f dshow -i video="Webcam C170":audio="Microphone (3- Webcam C170)" -an 
 -vcodec libx264 -f mpegts udp://AA.BB.CC.DD:1234

在linux服务器上,我在端口5555上运行testOnDemandRTSPServer,它需要来自AA:BB:CC:DD:1234的原始UDP数据。我尝试使用rtsp://AA.BB.CC.DD:5555/mpeg2TransportStreamFromUDPSourceTest在VLC中打开rtsp流。

但我在VLC里什么都没得到。我做错了什么?我怎么才能修好它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-18 12:51:49

据我所知,编写DeviceSource类并不简单,您所描述的问题肯定是在live555邮件列表中经常讨论的问题--如果您想要做任何与rtsp开发相关的事情,就需要得到列表a.a.p的批准。

您似乎遇到的问题与这样一个事实有关:一些视频格式的编写考虑到了流,而且rtsp服务器可以轻松地流某些格式,因为它们包含“同步字节”和其他“标记”,可以用来确定帧边界的结束位置。您可以使用的最简单的解决方案是将您的双手放在相机的SDK上,并使用它从照相机请求数据。有许多不同的库和工具包可以让您从相机中访问数据--其中之一就是DirectX SDK。一旦拥有了相机数据,就需要将其编码为可流格式,您可能可以使用DirectX获取原始的摄像机帧,然后使用ffmpeg (libavcodec,libavformat)将其转换为mp4 / h264帧数据。

一旦您有了编码的帧数据,就可以将其输入到您的DeviceSource类中,它将为您处理流数据。我希望我手头有代码,但我受NDA的约束,不能将代码从前提中删除,尽管通用算法已经在live555网站上记录下来,所以我可以在这里解释它。

我希望你在这件事上有更多的运气。如果你被困住了,记得在你的问题上添加代码。现在,唯一阻止您的原始计划工作的事情(流文件到VLC)是您选择的文件格式。

票数 0
EN

Stack Overflow用户

发布于 2014-06-16 18:56:27

您可以尝试的一件事是将VLC的日志记录详细级别提高到2: VLC需要带内参数集,在这种情况下,它将在messages窗口上打印正在等待参数集的调试消息。仅仅在RTSP DESCRIBE的SDP中拥有参数集是不够的。您可以将x264配置为定期或至少对每个IDR帧输出参数集。

其他您可以尝试的事情:您可以在使用VLC之前用openRTSP测试流。如果您使用openRTSP -d 5 -Q rtsp://xxx.xxx.xxx.xxx:5555/mpeg2TransportStreamFromUDPSourceTest选项,openRTSP将在流传输5秒后打印质量统计信息。然后,您将能够验证testOnDemandRTSPServer确实在中继流,并且在ffmpeg应用程序和testOnDemandRTSPServer之间没有问题。

票数 0
EN

Stack Overflow用户

发布于 2014-06-18 12:27:14

你试过不同的溪流吗?另外,由于防火墙的问题,我也遇到了类似的问题,您可能希望确保您能够通过这些端口进行数据流。

如果您缺少一个同步字节,这可能是一个流问题-尝试使用不同的数据源,看看这是否有帮助,尝试一个.avi文件或.mp4文件,通常.mp4文件很容易流。如果流处理.mp4文件,而不是mpegts文件,那么在您的文件中就有一个问题-- ffmpeg试图找出每个数据的“帧”或“帧集”的结束位置,以便它可以尝试流离散块。

自从我最后一次使用这些东西已经有两年多了,所以如果你有进展的话,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24247834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档