搞imx6q nxp的芯片也有几年时间了,近期准备写些这款芯片的使用心得。
用imx6q+tw6865 做了流媒体,包括rtsp,rtmp。
嵌入式中使用的是librtmp,rtsp的协议是自己写的。
rtmp和rtp以tcp传输都没有问题。
电脑端使用的ffmpeg-4.2.3,编译成Ubuntu版本的。
但是rtp以udp传输时会出现如下错误:
出现这样的问题也百度了,说是用tcp就不会出现这样的问题,好吧,最后我只能用eclipseCDT来调试ffmpeg(本来会写一篇调试ffmpeg)发现在libavform目录下的udp.c文件的
从s->local_port的port和rtsp中setup中知道port口是对的。
从这个接受数据的函数中发现一直断断续续有数据,但是不顺畅,也尝试了增加了buffer的大小。后来也wireshark抓了包。
rtsp是正确的 但是udp视频流的包电脑会发出port unreachable的icmp包,此包是内核发出的,因为找不到port口,但是在调试ffmpeg时port是对的。这个问题一直纠结了很久。
今天中午想起来了 可能是防火墙的问题。
这样关闭防火墙就ok了