Як передавати raspivid в Linux і OSX за допомогою GStreamer, VLC або Netcat?


Відповіді:


32
  • Netcat (nc), здається, є тим, що має найменшу затримку.
  • На мій досвід, VLC має найбільшу затримку. З іншого боку, є клієнт VLC для Android, що зручно.

  • <IP-OF-THE-CLIENT> - це IP комп'ютера, який повинен приймати відеопотік.

  • <IP-OF-THE-RPI> є ІР Raspberry Pi.

Використання Netcat:

Про клієнта

(Виконайте спочатку команду на клієнті, а потім на сервері (RPi)).

Linux

nc -l 2222 | mplayer -fps 200 -demuxer h264es -

ОС X

nc -l 2222 | mplayer -fps 200 -demuxer h264es -

На RPi

/opt/vc/bin/raspivid -t 0 -w 300 -h 300 -hf -fps 20 -o - | nc <IP-OF-THE-CLIENT> 2222

Використання GStreamer:

Про клієнта

Linux

gst-launch-1.0 -v tcpclientsrc host=<IP-OF-THE-RPI> port=5000  ! gdpdepay !  rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false

ОС X

gst-launch-1.0 -v tcpclientsrc host=<IP-OF-THE-RPI> port=5000  ! gdpdepay !  rtph264depay ! avdec_h264 ! videoconvert ! osxvideosink sync=false

На RPi

/opt/vc/bin/raspivid -t 0 -hf -fps 20 -w 300 -h 300 -o - | gst-launch-1.0 fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=<IP-OF-THE-RPI> port=5000

Використання VLC

Про клієнта

Клієнт може бути навіть на мобільному телефоні (я спробував на Android).

Просто відкрийте з мережі клієнт VLC:

http://<IP-OF-THE-RPI>:8090

На RPi

/opt/vc/bin/raspivid -o - -t 0 -hf -w 640 -h 360 -fps 25|cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264

Пі-версія не працює. Я маю на увазі, що це не працює як слід. Клієнт ip?
Flash Thunder

1
Я згоден, у Netcat найнижча затримка. Але чому ви використовуєте 200 кадрів в секунду? Мій потік становить 30 кадрів в секунду, але найкраще виглядає встановлення mplayer на 60, я не знаю чому. Якщо я встановив mplayer на 30, то це додасть затримки на 1-2 секунди
Elliott B

28

краще:

на rpi:

raspivid -t 0 -w 1280 -h 720 -hf -ih -fps 20 -o - | nc -k -l 2222

на вашому комп’ютері:

mplayer -fps 200 -demuxer h264es ffmpeg: // tcp: //10.0.1.3: 2222

підтримує повторне з'єднання


3
На малиновому пі, мені довелося використовувати -pпараметр, щоб встановити порт:raspivid -t 0 -w 1280 -h 720 -hf -ih -fps 20 -o - | nc -k -l -p 2222
johnboiles

3
Дякую за mplayerкоманду. Він також працює з новішим, raspividякий може передаватись на TCP без використання netcat, наприклад: raspivid -fps 20 -w 1280 -h 720 -t 0 -l -o tcp://0.0.0.0:2222- і команда відтворення така ж. Я все ще шукаю правильну URL-адресу для потокової передачі VLC. Це було щось на кшталтh264+tcp://example.org:2222
Томаш Гандор

1
Команда - tcp / h264: //example.org: 2222. Мені цікаво, як відтворити цей тип потоку на Android. Мобільні телефони мають такі бідні програми.
Валентин Раду

На macOS : brew install mplayer.
креймери
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.