Skip to content

Instantly share code, notes, and snippets.

@0x48piraj
Created April 6, 2020 00:42
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 0x48piraj/e408758424147a8cb5cb2474e408e0c5 to your computer and use it in GitHub Desktop.
Save 0x48piraj/e408758424147a8cb5cb2474e408e0c5 to your computer and use it in GitHub Desktop.
Video Streaming Raspberry Pi Camera Via Python Sockets & VLC Media Player
import socket
import subprocess
# Start a socket listening for connections on 0.0.0.0:8000 (0.0.0.0 means all interfaces)
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('rb')
try:
# Run a viewer with an appropriate command line. Uncomment the mplayer version if you would prefer to use mplayer instead of VLC
cmdline = ['vlc', '--demux', 'h264', '-']
#cmdline = ['mplayer', '-fps', '25', '-cache', '1024', '-']
player = subprocess.Popen(cmdline, stdin=subprocess.PIPE)
while True:
# Repeatedly read 1k of data from the connection and write it to the media player's stdin
data = connection.read(1024)
if not data:
break
player.stdin.write(data)
finally:
connection.close()
server_socket.close()
player.terminate()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment