照zlmediakit的源码 自己复制了一份
然后有的地方编译不过修改了部分
测试的时候发现有两个问题
第一是 ffmpeg的ffplay 能播放 vlc不能播放
第二个问题是directProxy设置为0的时候 推流的时候 然后用ffplay播放 只有音频没有视频
查了好久终于解决这个问题
第一个问题的现象 所有设置默认 directProxy默认为1
ffmpeg推本地mp4文件到miniserver服务器(我自己重新命名的工程)
用ffplay命令能播放 但是 用vlc不能播放
查看log发现 拉流时候 setup的过程中 socket的recvfrom返回0 log如下
代码中 这里 如果为0 的话就直接抛出异常 直接关闭练连接了
后来通过不断加log 仔细对比 发现是 DESCRIBE方法 构建sdp报文的时候有问题
这个问题产生的原因就是 当初 这台服务器上 有关 ostream 的c++的库 有问题 会编译出错 (后来这个问题通过替换C++的so库解决了)
所以当初 涉及到StrPrinter的地方都改了 如下 dur_sec那个变量那里
官方原来的代码如下 恢复成官方的代码就好了
另一个 directProxy ffplay播放只有音频的问题 也是不断加log 后来仔细对比 sdp报文 发现是在 setup构建sdp报文时候的问题
有问题的我的代码 看playload_type那里导致的问题
官方原来的代码
恢复成官方的代码就可以了