H.264(.mp4)视频流传输中MPEG-TS和RTP的区别是什么?

3
我正在尝试使用ffmpeg工具通过以太网流传输H.264(.mp4)视频。我已经了解了一些关于在以太网上传输H.264视频的知识,并学习到有两种方法:mpeg-ts和RTP(均通过UDP)。我已经能够通过ffmpeg(本地主机)使用这两种方法来流传输.mp4视频,并没有注意到任何质量或延迟方面的差异。这两种协议在视频传输方面的概念和效率有什么区别?还是我混淆了两个不同的概念?感谢任何帮助!"Original Answer"翻译成"最初的回答"
2个回答

4

RTP 的开销比使用传输流少,因为 RTP 使用可用的完整以太网数据包大小(通常为约1500字节的 MTU),而 TS 数据包的大小为188字节。此外,ffmpeg 的 UDP 协议通常用于通过网络发送 TS,但不支持接收端对数据包进行重新排序。


2

micha137的回答并没有涵盖所有可能性。

MPEG-TS可以直接通过UDP传输,也可以通过RTP(通过UDP)传输。 RTP添加了一个12字节(最小)头,包含用于同步的时间戳。

在这两种情况下,通常的做法是将七个188字节的TS数据包放入底层数据包中,无论底层数据包是RTP还是UDP。(一些专业编码器还允许您设置每个UDP的1个或4个数据包)

但更令人困惑的是,RTP还可以承载其他媒体类型(语音等),包括将H.264 NALU直接映射到RTP有效负载中。

在所有封装格式中,H.264-NALU-over-RTP-over-UDP具有最低的开销,因为它避免了MPEG-TS数据包的重复包头。

有关更多信息,请参见RTP有效负载格式

广播应用程序通常使用MPEG-TS,最常见的是直接通过UDP,但也可以通过RTP-over-UDP。

互联网应用程序曾经使用H.264-over-RTP,但现在已被HLS取代,后者主要使用TS文件块和MPEG-DASH,后者主要使用CMAF分段MP4文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接