解决了一个问题,留在这也算做个笔记。
是在做流媒体过程中,有时出现无法解码的问题。
具体的,编码器使用x264,推流到服务器上,再使用播放器播放流媒体服务器的视频流。当推一个视频文件时,可以从流媒体服务器播放,但是推一个摄像头的视频流时,怎么样也无法播放。使用opencv的VideoCapture获取待编码发送的视频帧。
把收到的流存成.264文件,直接使用播放器播放这个收到的文件,最奇怪的事就在这里,vlc不能播放,但是potplayer可以正常播放。而测试的RTSP播放器使用openh264的解码器,也不能播放。
然后,使用ffprobe统计一下,非常有用!
大概这样:
ffprobe.exe -show_frames received.264 > receivied.txt
就会得到一个每个视频帧的描述的文本文件,找pict_type项,或者,干脆把pict_type项全部取出来,可以直接使用ffprobe,可以选择需要输出的项,是更好的,但是这里直接在msys2(cygwin应该也可以)里的grep: