在前面一个博客(地址在这里 )中,我们做到了将采集的摄像头数据编码为H.264,接下来我么讨论下如何将H.264发送,在接收端接收解码并播放。和上一篇编码的博客一样,我们也是直接调用ffmpeg.exe和ffplay.exe文件,内部的具体操作需要抽时间去阅读。
1.传输
UDP是一种无连接的传输层协议,不对传送数据包进行可靠性保证,适合一次性传输少量数据。
我们在编码指令的基础上增加指令,将编码后的H.264封装为UDP并发送至组播地址。
ffmpeg -f vfwcap -i 0 -vcodec libx264 encoded.h264 -f h264 udp://127.0.0.1:6666
我这里是用自己的电脑往自己的电脑上发送,测试用,所以地址必须是:127.0.0.1。后面的6666是端口号,自己设置,只要和接收端保持一致即可。
考虑到提高编码速度,可以添加-preset:v ultrafas和-tune:v zerolatency两个选项。如下所示:
ffmpeg - f vfwcap - i 0 - vcodec libx264 encoded.h264 -preset:v ultrafast -tune:v zerolatency -f h264 udp ://127.0.0.1:6666
高分辨率的情况下,UDP传输会有丢包的现象。为了避免这种情况&#