1

我正在研究网络丢失对视频传输的影响。为了模拟网络丢失,我使用了一个简单的程序,它从 H.264 RTP 编码的输出中丢弃随机 RTP 数据包。

我使用联合模型 (JM) 14.2 来编码视频。但是,我没有使用 AnnexB 格式作为输出,而是选择输出为 RTP 数据包。JM 输出生成为 RTP 数据包,其中 RTP 标头和有效负载作为序列。之后,使用一个简单的程序丢弃一些 RTP 数据包。然后,我还可以使用 JM 及其错误隐藏方法来解码输出比特流。

该过程的主要目的是评估网络损失对人类视频质量感知造成的差异。为了测量感知质量,显示的视频必须是解码形式(即全分辨率),或者它可以在接收端解码。如果没有安装 JM 软件,JM 编码器创建的 RTP 数据包将无法解码。但是,使用正确的标头(或容器),大多数视频播放器都能够解码比特流。因此,我在这个问题中的目标是将我的编码RTP 数据包比特流封装在一个通用容器中,例如 AVI 或 MP4,以便我的内容可以在接收器计算机上解码。

RTP分包形式的编码比特流格式如下:

     ----------------------------------------------------------------------
     | RTP Header #1 | RTP Payload #1 | RTP Header #2 | RTP Payload #2 |...
     ----------------------------------------------------------------------

为了找到视频质量,我想对这些比特流进行主观测试。我可以使用自己解码的全分辨率数据来做这些测试,而用互联网上的 GB 视频数据众包这个主观测试非常不方便。所以,我想通过使用 FFMPEG 将这些比特流混合到一个容器(即 AVI)中。我试图用 FFMPEG 和 FFPLAY 解码这些比特流;但是,他们两个都没有工作。我也尝试了以下命令,它也不起作用。

    ffmpeg - f h264 -i <raw_rtpDropped.264> -vcodec copy -r 25 out.avi

我应该使用哪种格式或复用器?我需要将这些文件转换为任何其他格式吗?

4

1 回答 1

0

我想我会再次尝试说服您:编码是一种获取原始视频并对其进行压缩的方法。这会减小视频的大小,这正是您想要的,同时也降低了质量(您不能白白得到一些东西)。多路复用是许多科学中使用的术语,它意味着获取两个或多个数据流并将它们转换为 1。当您复用视频时,通常意味着您获取编码的视频并添加音频,或者只是视频但将其放入容器中例如 mpeg2 传输或基于 mpeg4 ISO 的容器。AVI 也是视频的容器/多路复用(因此称为音频视频交错),因此它不能解决您的 GB 数据问题。来自维基百科:“一个 AVI 文件可以在几乎任何压缩方案中的块内携带音频/视频数据,包括全帧(未压缩)、英特尔实时(Indeo)、Cinepak、

于 2013-09-23T12:09:28.180 回答