diff --git a/pdf/rk3588_guide.pdf b/pdf/rk3588_guide.pdf index dd57599..6f31f69 100644 Binary files a/pdf/rk3588_guide.pdf and b/pdf/rk3588_guide.pdf differ diff --git a/rk3588_guide.tex b/rk3588_guide.tex index 8c46603..7a66a22 100644 --- a/rk3588_guide.tex +++ b/rk3588_guide.tex @@ -205,6 +205,7 @@ \import{tex/}{resource} \import{tex/}{freq} \import{tex/}{upgrade} +\import{tex/}{gstreamer} \import{tex/}{issue} \part {生产部署} \import{tex/}{deploy} diff --git a/tex/gstreamer.tex b/tex/gstreamer.tex new file mode 100644 index 0000000..f9840aa --- /dev/null +++ b/tex/gstreamer.tex @@ -0,0 +1,38 @@ +\chapter{gstreamer 用法示例} + +\section{推 MJPEG 的视频流} +一般 USB 接口的摄像头支持 Motion JPEG 的视频流。可以用下面的命令来推 RTP 的视频流: +\begin{minted}[bgcolor=lightgray!30,fontsize=\scriptsize]{bash} +gst-launch-1.0 v4l2src device=/dev/video0 ! 'image/jpeg,width=1280,height=720,\ + framterate=30/1' ! rtpjpegpay ! udpsink host=192.168.1.27 port=5000 +\end{minted} +这里假定接收端的IP地址是`192.168.1.27'。接收端用 VLC 软件,需要配置一个 sdp 文件, 内容如下: +\begin{minted}[bgcolor=lightgray!30,fontsize=\scriptsize]{bash} +m=video 5000 RTP/AVP 26 +a=rtpmap:26 JPEG/90000 +a=framerate:30 +c=IN IP4 192.168.1.27 +\end{minted} +摄像头支持的视频格式,可以用命令进行查看: +\begin{minted}[bgcolor=lightgray!30,fontsize=\scriptsize]{bash} +v4l2-ctl -d 0 --list-formats-ext +\end{minted} +这里的`0' 对应 `/dev/video0',也可以写成 `/dev/video0' 的形式。 + +\section{推 TS 流} +用 gstreamer 推 RTP 的视频流,用 VLC 一般需要一个 sdp 文件才能正常播放。推 ts 的流,VLC 一般可以 +直接播放。例如,用组播推 ts 流: +\begin{minted}[bgcolor=lightgray!30,fontsize=\scriptsize]{bash} +gst-launch-1.0 v4l2src device=/dev/video0 ! 'image/jpeg,width=1280,height=720,\ + framterate=30/1' ! jpegdec ! mpph264enc ! mpegtsmux ! udpsink host=224.2.2.5 \ + port=5000 ttl-mc=225 ttl=255 +\end{minted} +VLC 打开串流: ``\texttt{udp://@224.2.2.5:5000}''。 + +用 udp 单播推 ts 流(这里以目标地址 `192.168.1.27', 端口 `5000' 为例): +\begin{minted}[bgcolor=lightgray!30,fontsize=\scriptsize]{bash} + gst-launch-1.0 v4l2src device=/dev/video20 ! 'image/jpeg,width=1280,height=720,\ + framerate=30/1' ! jpegdec ! mpph264enc ! h264parse config-interval=10 ! \ + mpegtsmux ! udpsink host=192.168.1.27 port=5000 +\end{minted} +在目标机上,用 VLC 打开串流:``\texttt{udp://@:5000}''。 \ No newline at end of file