什么是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
选项创建的相同文件?
答案 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.c
和libavformat/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问题,只是一个输入