什么是ffmpeg的UDP协议?

时间:2015-01-13 20:26:37

标签: ffmpeg

什么是ffmpeg的UDP协议?

以下是另一个question

的示例
ffmpeg -i udp://localhost:1234 -vcodec copy output.mp4
Or try:

ffmpeg -i rtp://localhost:1234 -vcodec copy output.mp4

RTP和UDP流是否类似协议或UDP数据包包含我可以使用-f segement选项创建的相同文件?

4 个答案:

答案 0 :(得分:3)

udp://在ffmpeg中意味着它将直接将视频/音频内容(例如H.264)流式传输/解析为UDP网络数据包,而不使用中间协议。

另一方面,

rtp://增加了另一层封装,其中视频/音频内容将被封装到RTP数据包中,而RTP数据包将被封装到UDP数据包中。

RTP更适合媒体流,因为它包含时间戳和排序信息。原始UDP数据包缺少该信息,更容易出现乱序和丢包,导致视频/音频伪像。

答案 1 :(得分:2)

用户数据报协议。

UDP URL所需的语法是:

udp://hostname:port[?options]

选项包含表格key = val。

的& -separated选项列表

如果在系统上启用了线程,则使用循环缓冲区来存储传入数据,这样可以减少由于UDP套接字缓冲区溢出而导致的数据丢失。 fifo_size和overrun_nonfatal选项与此缓冲区相关。

支持的选项列表如下。

使用ffmpeg将UDP流式传输到远程端点:

ffmpeg -i input -f format udp://hostname:port

使用ffmpeg使用188个大小的UDP数据包通过UDP以mpegts格式传输,使用大输入缓冲区:

ffmpeg -i input -f mpegts udp://hostname:port?pkt_size=188&buffer_size=65535

使用ffmpeg从远程端点接收UDP:

ffmpeg -i udp://[multicast-address]:port ...

你可以找到男人的一些提示!

答案 2 :(得分:2)

显然它是RTSP,请参阅来源中的libavformat/rtsp.clibavformat/udp.c

答案 3 :(得分:1)

ffmpeg可以侦听UDP端口并从该端口接收数据。 数据可以来自发送封装在UDP中的RTP pakets的摄像机。 所以想象相机作为发送者只是将端口上的udp pakets发送到ip并且ffmpeg在同一端口上侦听该ip并处理相机发送给它的内容 它们只是数据的输入,您可以使用-f选项,无论输入是来自udp端口还是来自电影,您都可以这样做

ffmpeg -i movie.mp4 -c copy -f flv a.flv

或做

ffmpeg -i udp://localhost:1234 -c copy -f flv a.flv 

,对于ffmpeg dnt问题,只是一个输入