|
|
@ -1,4 +1,4 @@ |
|
|
|
\chapter{资源分配} |
|
|
|
\chapter{硬件接口} |
|
|
|
\section{网络} |
|
|
|
系统里有两个网口,一个是从 SOC 直出的,一个从 PCIE 接 RTL81111芯片出来的网口。他们的IP地址配置文件是 /etc/network/interfaces.d 下的 |
|
|
|
eth0 和 eth1。其对应关系如下表所示: |
|
|
@ -15,3 +15,56 @@ eth0 和 eth1。其对应关系如下表所示: |
|
|
|
\end{tabular} |
|
|
|
\caption{网口对应关系} |
|
|
|
\end{table} |
|
|
|
|
|
|
|
\section{video} |
|
|
|
从 HDMI 输入的视频数据,在 Linux 系统里从 /dev/videoX 的设备中获取出来。可以用 多媒体框架 gstreamer 来做测试。 |
|
|
|
用 gstreamer 的 gst-launch-1.0 可以用来控制 video 的视频数据。 |
|
|
|
|
|
|
|
这里以 板子上用 gstreamer 提供 rtp 服务,在电脑的 windows 端用 VLC 程序来实现视频的播放为例,展示一下 video 功能。 |
|
|
|
\begin{enumerate} [(1)] |
|
|
|
\item 在板子上启动 rtp 服务: |
|
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\scriptsize]{bash} |
|
|
|
gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! x264enc ! rtph264pay pt=96 \ |
|
|
|
! udpsink host=192.168.1.17 port=5000 |
|
|
|
\end{minted} |
|
|
|
这里假定电脑的IP地址是:192.168.1.17。这根据实际情况修改。 |
|
|
|
\item 在电脑上新建一个 sdp 文件(hdmi.sdp)\footnote{ SDP 的完整定义,请查看 rfc4566},内容如下: |
|
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\scriptsize]{bash} |
|
|
|
m=video 5000 RTP/AVP 96 |
|
|
|
|
|
|
|
a=rtpmap:96 H264 |
|
|
|
|
|
|
|
a=framerate:30 |
|
|
|
|
|
|
|
c=IN IP4 192.168.1.17 |
|
|
|
\end{minted} |
|
|
|
这里的 5000 是端口号, 192.168.1.17 是 IP 地址,要与上面命令中的参数保持一致。 |
|
|
|
\item 在电脑上用 VLC 程序打开 hdmi.sdp 文件。 |
|
|
|
\begin{figure}[H] |
|
|
|
\centering |
|
|
|
\includegraphics[width=0.8\textwidth]{vlc} |
|
|
|
\caption{VLC 播放 video} |
|
|
|
\end{figure} |
|
|
|
\end{enumerate} |
|
|
|
|
|
|
|
\begin{comment} |
|
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\tiny]{bash} |
|
|
|
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1920,height=1080,framerate=30/1 \ |
|
|
|
! timeoverlay ! tee name=vsrc vsrc. ! queue ! videoconvert \ |
|
|
|
! ximagesink vsrc. ! queue ! x264enc tune=zerolatency \ |
|
|
|
! rtph264pay name=pay0 pt=96 |
|
|
|
\end{minted} |
|
|
|
|
|
|
|
gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! x264enc ! rtph264pay ! udpsink host=192.168.1.10 port=5000 |
|
|
|
|
|
|
|
在 windows 端用 vlc 打开 \verb+rtsp://<目标IP>:8554/test+ 可以拉取视频数据。 |
|
|
|
|
|
|
|
\noindent 发送端: |
|
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\footnotesize]{bash} |
|
|
|
gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! x264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000 |
|
|
|
\end{minted} |
|
|
|
接收端: |
|
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\footnotesize]{bash} |
|
|
|
gst-launch-1.0 -v udpsrc port=5000 ! rtpmp2tdepay ! decodebin ! autovideosink |
|
|
|
\end{minted} |
|
|
|
\end{comment} |