![동일한 장치 내의 이더넷에서 WiFi 네트워크로 rtsp 비디오 스트림 리디렉션](https://linux55.com/image/192403/%EB%8F%99%EC%9D%BC%ED%95%9C%20%EC%9E%A5%EC%B9%98%20%EB%82%B4%EC%9D%98%20%EC%9D%B4%EB%8D%94%EB%84%B7%EC%97%90%EC%84%9C%20WiFi%20%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EB%A1%9C%20rtsp%20%EB%B9%84%EB%94%94%EC%98%A4%20%EC%8A%A4%ED%8A%B8%EB%A6%BC%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98.png)
최소한의 yocto 기반 Linux가 있고 GUI가 없는 임베디드 보드가 있습니다. 이더넷 및 WiFi 인터페이스가 실행 중입니다.
이제 내 이더넷 포트( )에 Axis F44(192.168.30.35) 카메라가 연결되어 있습니다 192.168.30.34
. 내 WiFi 인터페이스에는 uap0
AP 모드 고정 IP:가 있으며 192.168.42.1
장치를 WiFi에 스테이션으로 연결하면 장치가 IP:를 수신합니다 192.168.42.25
. 다음 그림은 네트워크 세부정보를 보여줍니다.
192.168.42.25
이제 모바일 장치 애플리케이션에서 카메라의 RTSP 스트림을 재생하려면 모바일 장치( )가 카메라( 192.168.30.35
)에 핑을 시작하고 그 반대의 경우도 가능하도록 보드에서 어떤 네트워크 변경을 수행해야 할지 잘 모르겠습니다 .
누구든지 목표를 달성하는 방법을 제안할 수 있습니까? 아니면 어떤 네트워크 구성(브리징 또는 IP 전달)이 필요합니까?
장치의 인터페이스:
eth0 Link encap:Ethernet HWaddr E2:5D:60:CB:29:99
inet addr:192.168.30.34 Bcast:192.168.30.255 Mask:255.255.255.0
inet6 addr: fe80::e05d:60ff:fecb:2999%lo/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24 errors:0 dropped:0 overruns:0 frame:0
TX packets:209 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2030 (1.9 KiB) TX bytes:17571 (17.1 KiB)
uap0 Link encap:Ethernet HWaddr D4:CA:6E:5E:4E:01
inet addr:192.168.42.1 Bcast:192.168.42.255 Mask:255.255.255.0
inet6 addr: fe80::d6ca:6eff:fe5e:4e01%lo/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2617 errors:0 dropped:0 overruns:0 frame:0
TX packets:78 errors:18 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:180796 (176.5 KiB) TX bytes:4590 (4.4 KiB)
답변1
다음은 Yocto 시스템을 구성하는 방법에 대한 몇 가지 제안입니다. 각 주제를 더 철저하게 조사해야 합니다. 모두 장단점이 있지만 마지막 NAT(NAT)를 사용하는 것이 좋습니다.
브리지로 설정
Linux 시스템은 AP이므로 이더넷 인터페이스와 Wi-Fi 인터페이스를 함께 연결하는 것이 완전히 가능합니다. 특정 방법에는 구성이 필요합니다.주인브리지를 올바르게 사용하십시오. 몇 가지 팁여기그리고거기.
이번에는 192.168.42.1을 사용하도록 카메라를 구성(빌드 시 수동으로 또는 DHCP를 사용하여)해야 할 수도 있지만, Yocto 시스템은 여전히 DHCP가 필요하므로 192.168.42.0/24에 (다른) IP 주소를 가져야 합니다. 섬기는 사람.
그래서 여전히 보드의 이중적 성격을 드러냅니다. Yocto 시스템을 완전히 투명하게 만들고 여전히 DHCP(192.168.42.1 기준)를 제공하는 방법이 있을 수 있지만 이는 복잡할 수 있습니다.
라우터로 설정
IP 전달을 활성화해야 합니다.
카메라 시스템 표시
즉, DHCP를 사용하여 카메라에 대한 경로를 알려야 하지만 기본 경로로는 사용할 수 없습니다. 새로운 기본 경로로 인해 최종 사용자는 카메라를 사용하기 위해 인터넷이 끊어지지 않습니다. DHCP를 사용하여 특정 경로를 알리려면 다음 두 기능이 모두 필요합니다.
-
RFC 표준 추적 옵션입니다.
-
또는 이전 Windows 시스템에서는 이를 얻을 수 없습니다.
구성은 시스템에서 사용되는 DHCP 서버에 따라 다릅니다. 그것은아마도 치아, 어느기본 지원 없음이러한 옵션의 경우 임의의 옵션을 처리할 수 있습니다.거기에 설명된(이를 위해서는 RFC의 옵션을 잘 이해해야 합니다.)
그리고 192.168.30.34를 통해 카메라의 기본 경로를 구성하는 것을 잊지 마십시오(수동 또는 DHCP, 위 옵션은 필요하지 않음).
하지만 그렇게 하는 것은 다음과 같은 이유로 재미가 없을 수도 있습니다.
- 복잡한 DHCP 옵션과 두 번째 네트워크를 사용하면 이 네트워크가 사용자 자신의 네트워크 설정과 충돌할 수 있습니다.
- 여전히 이사회 이중체제의 존재가 드러났다.
-
아니면 NAT 뒤에 카메라가 숨겨져 있는 경우도 있습니다.
다음과 같이 사용하여ALG
nf_nat_rtsp
프로젝트에서 제공하는 외부(예: 비주류) Linux 커널 모듈rtsp-리눅스(예를 들어 Debian에서는 다음과 같이 패키지되었습니다.nat-rtsp-dkms) 다음과 유사한 적절한 NAT 규칙과 함께:iptables -t nat -A PREROUTING -i uap0 -d 192.168.42.1 -p tcp --dport 554 -j DNAT --to-destination 192.168.30.35 iptables -t nat -A PREROUTING -i uap0 -d 192.168.42.1 -p udp --dport 554 -j DNAT --to-destination 192.168.30.35
그리고 이 블로그에 설명된 대로 적절한 보조 모듈 구성:iptables 및 연결 추적 도우미의 안전한 사용, 또는 보안 고려사항을 고려한 후 "안전하지 않은" 방법을 다시 활성화하십시오.
sysctl -w net.netfilter.nf_conntrack_helper=1
요약:
복잡한 DHCP 구성을 피하고 보드에 두 번째 시스템이 노출되지 않도록 하세요(사실)
이중 NAT가 완료되면 카메라에는 기본 경로도 필요하지 않습니다.
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.42.0/24 -j MASQUERADE
커널 모듈이 필요하므로 이전에 임베디드 시스템에서 활성화되지 않은 경우 커널 모듈을 지원해야 합니다.
RTSP 호환성을 위해 모듈을 검증해야 합니다.
답변2
단일 보드 컴퓨터에서 IP 전달을 활성화하는 것이 좋습니다. 놓다:
net.ipv4.ip_forward=1
그리고 /etc/sysctl.conf
실행하십시오 sudo sysctl -p
. 이것이 yocto에서 어떻게 작동하는지 잘 모르겠습니다.
그런 다음 트래픽이 yocto 컴퓨터를 통해 컴퓨터에서 카메라로 라우팅되는지 확인해야 합니다. 이는 컴퓨터의 다른 네트워크 인터페이스가 어떻게 구성되어 있는지에 따라 다릅니다. 일반적으로 다음과 같아야 합니다.
ip route add 192.168.30.0/24 via 192.168.42.1 dev wlp2s0
저는 RTSP에 대해 잘 알지 못하지만 이 정도면 충분하다고 생각합니다.