2014-01-31 37 views
1

我编写了一个应用程序,通过TCP接收RTP数据包(没有数据包丢失),并将其H264数据包转储到文件中,以便我可以使用MPlayer或VLC播放视频。这已经在工作,我几乎完成了描述here的步骤。播放视频的命令是mplayer -fps 24 -demuxer h264es foobar.h264vlc foobar.h264如何将H264/RTP流转储到文件而不会丢失时间信息?

现在的问题是当我播放视频时。相机频繁更换FPS,并且因为在写入H264文件时放弃了RTP信息,每个帧的时间戳都会丢失。我的问题是:我需要做些什么来修复帧频?我应该创建空白/空白P帧(如果可能的话)?如果是这样,我该怎么做?

任何使用Linux兼容工具或库(如ffmpeg,libx264,libavcodec)使用shell,C/C++或Python的解决方案都非常受欢迎。

PS:我几乎没有视频编码和RTP的经验。

回答

5

原始h.264流中没有计时信息。该流需要放入MP4或FLV等容器中,您可以使用PTS/DTS标记每个帧。

相关问题