我知道在h264中已经有一个NAL单元来分隔帧。如果我使用可靠的TCP连接,为什么我需要mpeg-ts格式来通过网络发送数据?
我已经使用gstreamer尝试过了。但是使用mpeg-ts的情况只起作用。tcpsrc和tcpsink只是通过网络发送所有数据。似乎使用TCP和只在本地读取文件没有区别。
使用mpeg-ts
gst-launch-1.0 videotestsrc horizontal-speed=5 ! x264enc tune="zerolatency" threads=1 ! mpegtsmux ! tcpserversink host=192.168.0.211 port=8554
gst-launch-1.0 tcpclientsrc port=8554 host=192.168.0.211 ! tsdemux ! h264parse ! avdec_h264 ! xvimagesink 没有mpeg-ts
gst-launch-1.0 videotestsrc horizontal-speed=5 ! x264enc tune="zerolatency" threads=1 ! tcpserversink host=192.168.0.211 port=8554
gst-launch-1.0 tcpclientsrc port=8554 host=192.168.0.211 ! h264parse ! "video/x-h264, format=byte-stream" ! avdec_h264 ! ximagesink 发布于 2015-11-04 02:26:31
容器主要用于计时信息。计时信息对于许多应用程序至关重要,例如同步音频。或者,如果您使用的是可变帧率,或者丢弃了帧,则视频的播放速度可能会比预期的快或慢。如果您不需要这些功能,并且将来也不需要它们,那么您可能就不需要开销了。
https://stackoverflow.com/questions/33503917
复制相似问题