ffmpeg通过UDP协议将编码后的流发送到局域网电脑的某个端口上。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ffmpeg通过UDP协议将编码后的流发送到局域网电脑的某个端口上。相关的知识,希望对你有一定的参考价值。

ffmpeg -f video4linux2 -i /dev/video0 -vcodec mpeg4 -f rtp udp://192.168.1.114/30001

但是在windows端的30001端口收不到任何数据,为什么?

参考技术A udp://192.168.1.114:30001
114后面不是/ 而是:追问

哦,这个是我刚才不小心打错了- -就是udp://192.168.1.114:30001....这样子不行额

追答

ffmpeg -f video4linux2 -i /dev/video0 -vcodec mpeg4 -f rtp udp://192.168.1.114/30001
你可以用用多播地址试试,我公司的同事一般是多播地址,我没有弄过。
ffmpeg -f video4linux2 -i /dev/video0 -vcodec mpeg4 -f rtp | nc -u 192.168.1.114 30001
如果是linux 可以用nc 命令把包发出来。

追问

- -上周我已经解决了,不过还是谢谢你。

本回答被提问者采纳
参考技术B 怎么解决的~~~~~~~~~~

将udp数据包发送到本地局域网很奇怪

【中文标题】将udp数据包发送到本地局域网很奇怪【英文标题】:weird about send udp packet to local lan 【发布时间】:2012-12-23 12:51:18 【问题描述】:

我正在使用 Visual Studio 2003 编写一个通过 UDP 套接字与本地 LAN 通信的简单程序。而且我试图不使用 MFC。下面是我用来测试UDP socket的一小段代码:

static void sendMsg(char *buf, int len)

SOCKET sock;
struct sockaddr_in addr;

sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0)
    return;

addr.sin_family = AF_INET;
    addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = inet_addr("192.168.2.108"); // Specify dest IP

sendto(sock, buf, len, 0, (struct sockaddr*)&addr, sizeof(addr));

closesocket(sock);

为了验证数据包是否发送出去,我使用了wireshark来捕获数据包。

我的电脑的 IP 是 192.168.1.107。奇怪的是,如果dest IP是192.168.1.108这样的本地IP,我无法在wireshark中捕获数据包。但是如果目标 IP 是 192.168.1.1(网关)或 192.168.1.255(广播)或 LAN ip 之外的 IP,如 192.168.2.108,我可以捕获 UDP 数据包。

谁能帮我解释一下?我的代码有问题吗?

【问题讨论】:

帮不了你,但我可以说我在使用wireshark时遇到了同样的问题。 UDP 数据包已发送,我在 LAN 的本地服务器上收到它,但无法使用 Wireshark 记录该数据包。 【参考方案1】:

如果您将 UDP 数据包发送到您的机器不知道的 IP 地址,它将首先通过 ARP protocol 询问机器的 MAC 地址。

如果它得到响应,它将把你的数据包发送到它收到的 MAC 地址,如果它不能得到关于 MAC 地址的响应,则根本不会发送 UDP 数据包。

192.168.1.1 是一台现有的机器(默认路由器),局域网外的所有内容都将通过现有的默认路由器,因此您将看到传输的 UDP 数据包。如果您尝试发送到 LAN 上不存在的 IP,您将看不到任何发送的数据包,因为 ARP 会在您的数据包传输之前失败。

【讨论】:

我删除了udp的过滤器,然后我看到了ARP数据包。谢谢。

以上是关于ffmpeg通过UDP协议将编码后的流发送到局域网电脑的某个端口上。的主要内容,如果未能解决你的问题,请参考以下文章

将udp数据包发送到本地局域网很奇怪

udp 协议 如何实现 局域网 一对多的通信?他们对应的原理是啥?腾讯qq 是用tcp还是udp?求教高手详解谢谢

FFmpeg解码H264视频流局部花屏解决方法

FFmpeg解码H264视频流局部花屏解决方法

ffmpeg实时编码解码部分代码

VRRP协议详解