PiCamera Stream Unterschiede

Aug 31 2020

Ich versuche, einen h264-Stream von meinem Pi 3 zu erstellen und ihn in einer Android-Anwendung anzuzeigen.

Nach mehreren Versuchen fand ich eine recht einfache Lösung:

raspivid -n -ih -t 0 -w 640 -h 480 -fps 25 -b 2000000 -l -o - | nc -l -p 5000

Es funktioniert gut und ich kann es über eine gängige App wie VLCunter Windows abspielen :

vlc tcp/h264://my_pi_address:5000/

Dieser Stream kann auch auf Android mit einer benutzerdefinierten Anwendung ( RPi Camera Viewer) angezeigt werden .

Lesen von PiCamera- Dokumenten Ich habe mit Python eine andere Lösung gefunden, die genauso funktionieren sollte:

import socket
import time
import picamera

camera = picamera.PiCamera()
camera.resolution = (640, 480)
camera.framerate = 24

server_socket = socket.socket()
server_socket.bind(('0.0.0.0', 8000))
server_socket.listen(0)

# Accept a single connection and make a file-like object out of it
connection = server_socket.accept()[0].makefile('wb')
try:
    camera.start_recording(connection, format='h264')
    camera.wait_recording(60)
    camera.stop_recording()
finally:
    connection.close()
    server_socket.close()

Getestet VLCfunktioniert es gut, aber ich kann diesen Stream nicht in Android anzeigen. (Zumindest nicht mit RPi Camera Viewer).

Ich denke, ein Problem kann von geringfügigen Unterschieden zwischen den Strukturen des Streams herrühren. Wie kann ich sie vergleichen?

Antworten

1 weirdgyn Sep 01 2020 at 07:29

Probleme bei der Visualisierung der Android-App wurden durch eine fehlerhafte Netzwerkverbindung verursacht.

Es ist ziemlich schwierig zu sagen, was im Detail passiert, da ich die Konfiguration des Zugriffspunkts und andere Netzwerkeinstellungen (einschließlich Firewalls), die im Unternehmensnetzwerk aktiv sind, nicht weiter untersuchen kann, da ich keine Netzwerkadministratorrechte habe. Dies ist ziemlich frustrierend. Bei Verwendung eines anderen Zugangspunkts funktioniert alles wie erwartet.