วิธีการสตรีม raspivid ให้กับ Linux และ OSX โดยใช้ GStreamer, VLC หรือ Netcat?


21

ฉันจะสตรีมวิดีโอไปยัง Linux หรือ OS X โดยใช้ raspivid และ VLC, GStreamer หรือ Netcat ได้อย่างไร


คุณสามารถค้นหาข้อมูลบางอย่างเกี่ยวกับ RTSP สตรีมมิ่ง raspberrypi.stackexchange.com/questions/12156/…
mpromonet

คำตอบ:


32
  • Netcat (nc) น่าจะเป็นตัวที่มีความล่าช้าน้อยที่สุด
  • จากประสบการณ์ของฉัน VLC มีความล่าช้ามากที่สุด ในทางกลับกันก็มีไคลเอนต์ VLC สำหรับ Android ซึ่งสะดวก

  • <IP-OF-THE-CLIENT> เป็น IP ของคอมพิวเตอร์ที่ควรรับสตรีมวิดีโอ

  • <IP-OF-THE-RPI> คือ IP ของ Raspberry Pi

ใช้ Netcat:

เมื่อลูกค้า

(เรียกใช้คำสั่งบนไคลเอนต์ก่อนและจากนั้นบนเซิร์ฟเวอร์ (RPi))

ลินุกซ์

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

OS 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:

เมื่อลูกค้า

ลินุกซ์

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

OS 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

เวอร์ชั่น Pi ไม่ทำงาน ฉันหมายความว่ามันไม่ทำงานเท่าที่ควร ip ของลูกค้า?
Flash Thunder

1
ฉันเห็นด้วย netcat มีเวลาแฝงต่ำที่สุด แต่ทำไมคุณถึงใช้ 200fps กระแสของฉันคือ 30fps แต่การตั้งค่า 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
Tomasz Gandor

1
คำสั่งคือ tcp / h264: //example.org: 2222 ฉันสงสัยว่าจะเล่นสตรีมประเภทนี้บน Android ได้อย่างไร โทรศัพท์มือถือมีแอพที่ไม่ดีเช่นนั้น
Valentin Radu

บน brew install mplayerMacOS:
creimers
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.