You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
2.9 KiB

\chapter{硬件接口}
\section{网络}
系统里有两个网口,一个是从 SOC 直出的,一个从 PCIE 接 RTL81111芯片出来的网口。他们的IP地址配置文件是 /etc/network/interfaces.d 下的
eth0 和 eth1。其对应关系如下表所示:
\begin{table}[H]
\centering
\begin{tabular}{ccc}
\toprule
网络接口 & 驱动 & 默认地址 \\
\midrule
\texttt{eth0} & \texttt{\small r8168} & \texttt{\small 192.168.2.80} \\
\texttt{eth1} & \texttt{\small st\_gmac} & \texttt{\small 192.168.1.80} \\
\bottomrule
\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}