我已经使用Wireshark将视频呼叫保存到.pcap文件,并且我想从RTP数据包中获取视频。 RTP包有效载荷类型是vp8,我可以通过使用C++中的libpcap库找到vp8 RTP包。然后我将所有RTP vp8数据包的内容保存到一个文件中。但我无法通过使用ffmpeg将此原始vp8数据转换为.mp4。转换过程中ffmpeg给出错误。 的ffmpeg转换错误:无效的数据发现处理输入将RTP vp8净荷数据包保存为.webm文件
是怎么得到VP8 RTP包.MP4或.webm视频文件的步骤是什么时候?
编辑:我可以得到除VP8有效载荷描述符,有效载荷头和关键帧头之外的原始VP8数据。然后我说每个VP8原始帧IVF头和帧头,根据IVF文件 IVF Document
但是当我想用ffmpeg的
的ffmpeg -i转换我的IVF文件(输出1)至output1.mp4输出1 -c:v VP8 output1.mp4
我得到的错误
“然后我将所有RTP vp8数据包的内容保存到一个文件中。” - 你保持数据包边界吗?即它只是二进制连接的垃圾或每个数据包仍然是一个单独的VP8帧与有效的时间戳等? –
我得到所有包括VP8的RTP数据包,然后我从这些数据包中提取了RTP头,并保存了RTP有效载荷数据。我保存的数据只是连接的RTP有效负载。现在我想从原始数据中获取视频。可能首先,我必须找到每个帧的边界,然后我必须为每个帧添加一个头以便能够以vp8格式播放。 我可以通过使用S位和部件ID来提取vp8有效负载标头。所以我认为我可以找到每个框架的边界。 – Ibrahim