使用gstreamer框架将视频及其音频发送到RTP(网络)

时间:2018-02-15 05:31:44

标签: video-streaming gstreamer h.264 rtp

我是gstreamer的新手,我想将视频及其音频从相机发送到RTP(网络)。

我正在使用' AM5728'作为我们的处理器,它将视频和音频分别作为输入,视频将在AM5728中使用H.264进行压缩。

现在我的问题是 i)如何在AM5728中压缩音频(与视频相关)?

ii)这些单独压缩的视频和音频如何编码并发送到RTP(网络),保持音频与视频同步?我们遇到了各种插件。

是否有任何特定的插件。

1 个答案:

答案 0 :(得分:0)

请参阅此link,其要求完全相同。

  

i)如何在AM5728中压缩音频(与视频相关)?

am5728中没有音频编码硬件,所以你们都必须进行软件编码,gstreamer有一个avenc_aac插件。

  

ii)如何对这些单独压缩的视频和音频进行编码   并发送到RTP(网络),保持音频与视频同步?我们来到了   各种插件。

以下是一个简单的管道,它通过端口10000上的ip 192.168.1.186向客户端发送音频和视频,您可以将IP更改为方便,也可以是端口:

 gst-launch-1.0 -vv v4l2src device=/dev/video1 io-mode=4 ! 'video/x-raw,format=(string)YUY2,width=1280,height=720,framerate=(fraction)30/1' ! vpe num-input-buffers=8 ! 'video/x-raw,format=NV12,width=1920,height=1080' !  queue ! ducatih264enc bitrate=6000 ! h264parse ! queue ! mpegts. alsasrc ! queue ! avenc_aac ! compliance=-2 ! aacparse ! mpegts.  mpegtsmux name=mpegts  ! rtpmp2tpay ! udpsink host=192.168.1.186 port=10000

对于接收者:

gst-launch-1.0 -e -v udpsrc port=10000 caps="application/x-rtp\,.." ! rtpjitterbuffer ! rtpmp2tdepay ! tsdemux name=demux demux. ! queue ! h264parse ! avdec_h264 ! videoconvert ! autovideosink demux. ! queue ! aacparse ! avdec_aac ! audioconvert ! autoaudiosink

注意:您需要填写发件人为udpsink0.GstPad打印的大写字母:接收方大写字母中的上限