为什么视频传输需要编码?(gstreamer)

问题描述 投票:0回答:1

我传输的视频已经编码了。为什么我在传输的时候又要重新编码?

example: gst-launch-1.0 -v filesrc location=123.mp4 ! x264enc ! rtph264pay ! udpsink host=192.168.10.186 port=9001。

就把视频发过去,不用编码。我可以在另一边查看吗?

比如说

server: gst-launch-1.0 -v filesrc location =123.mp4 ! udpsink host=192.168.10.186 port=9001。

123.mp4 编码 h265

client: gst-launch-1.0 udpsrc port=9001 caps = "applicationx-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H265, payload=(int)96" ! rtph265depay ! h265parse ! nvh265dec ! autovideosink !

问候

gstreamer decode pipeline encode
1个回答
0
投票

好吧,说明你的输入被假设为MPEG4文件,其中包含H.265:是的,那么它是可能的(如果这个假设不成立,那么 这不行).

下面的方法应该可以做到。

gst-launch-1.0 filesrc location=123.mp4 ! qtdemux ! h265parse config-interval=-1 ! rtph265pay  ! udpsink host=192.168.10.186 port=9001

解释:

  • 解释: qtdemux 将解密MPEG4容器到包含的视频音频字幕流中(如果容器内有多个流,你需要多次链接到它,否则GStreamer会出错)。
  • h265parse config-interval=1 将确保你的包含正确的SPSPPS参数集。如果你的原始输入文件内的流不是H265视频流,这将导致链接失败。
  • rth265pay 会将其转化为RTP数据包。
  • ......其中的 udpsink 然后可以通过指定的套接字发送

P.S.: 你可能也会对以下内容感兴趣。rtpsink (过去是在树外生活,但现在已被纳入GStreamer的最新主版)

P.P.S.: 你应该使用偶数端口发送RTP流。

© www.soinside.com 2019 - 2024. All rights reserved.