Last active
April 27, 2020 02:00
-
-
Save ross-newman/a74e1373626be21d31fe2326610569be to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
REMOTE_IP=192.168.0.123 | |
echo "Staring stream..." | |
gst-launch-1.0 rtspsrc location="rtsp://${REMOTE_IP}:554/h264?username=admin&password=123456" ! \ | |
rtph264depay ! \ | |
h264parse ! \ | |
avdec_h264 ! \ | |
videoconvert ! \ | |
xvimagesink sync=true | |
echo "Done..." |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
# -*- coding: utf-8 -*- | |
# sudo apt-get install python-gst-1.0 gir1.2-gst-rtsp-server-1.0 | |
import gi | |
gi.require_version('Gst','1.0') | |
gi.require_version('GstRtspServer','1.0') | |
from gi.repository import Gst, GObject, GstRtspServer | |
GObject.threads_init() | |
Gst.init(None) | |
class RTSP_Server: | |
def __init__(self): | |
self.server = GstRtspServer.RTSPServer.new() | |
self.address = "127.0.0.1" | |
self.port = "554" | |
self.server.set_address(self.address) | |
self.server.set_service(self.port) | |
# Setup callback | |
self.server.connect("client-connected",self.client_connected) | |
self.factory = GstRtspServer.RTSPMediaFactory().new() | |
self.factory.set_launch(( \ | |
'v4l2src device=/dev/video0 ! video/x-h264,width=640,height=480,framerate=30/1 ! ' \ | |
'h264parse ! ' \ | |
'queue ! ' \ | |
'rtph264pay name=pay0 pt=96 ' \ | |
)) | |
# allow multiple connections | |
self.factory.set_shared(True) | |
self.factory.set_transport_mode(GstRtspServer.RTSPTransportMode.PLAY) | |
self.mounts = self.server.get_mount_points() | |
self.mounts.add_factory('/live', self.factory) | |
self.server.attach(None) | |
# Output hint | |
port = self.server.get_bound_port() | |
print "Streaming on rtsp://" + str(self.address) + ":" + str(port) + "/h264" | |
GObject.MainLoop().run() | |
print "Done." | |
def client_connected(self, arg1, arg2): | |
print('Client connected') | |
server = RTSP_Server() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment