def __init__(self, port, bitrate, framerate, path, videos):
        """
		**On init:** Some initialization code.
		
		:param port: RTSP server port.
		:type port: string or integer
		:param bitrate: The bitrate (in kbps).
		:type bitrate: string or integer
		:param framerate: The framerate (in fps).
		:type framerate: string or integer
		:param string path: Path to the video directory.
		:param list videos: List of available videos.
		"""
        #: The bitrate (in kbps).
        self.bitrate = bitrate
        #: The framerate (in fps).
        self.framerate = framerate
        #: Path to the video directory.
        self.path = path
        #: List of available videos.
        self.videos = videos
        #: GStreamer RTSP server instance.
        self.server = Server()
        #: Gstreamer loop.
        self.loop = None
        self.server.set_service(str(port))
        #: List of GStreamer RTSP factories.
        self.factory = []
        self.__addMedia()
Пример #2
0
	def __init__(self, port, bitrate, framerate, path, videos):
		"""
		**On init:** Some initialization code.
		
		:param port: RTSP server port.
		:type port: string or integer
		:param bitrate: The bitrate (in kbps).
		:type bitrate: string or integer
		:param framerate: The framerate (in fps).
		:type framerate: string or integer
		:param string path: Path to the video directory.
		:param list videos: List of available videos.
		"""
		#: The bitrate (in kbps).
		self.bitrate = bitrate
		#: The framerate (in fps).
		self.framerate = framerate
		#: Path to the video directory.
		self.path = path
		#: List of available videos.
		self.videos = videos
		#: GStreamer RTSP server instance.
		self.server = Server()
		#: Gstreamer loop.
		self.loop = None
		self.server.set_service(str(port))
		#: List of GStreamer RTSP factories.
		self.factory = []
		self.__addMedia()
Пример #3
0
	def __init__(self, port, bitrate, framerate):
		"""
		**On init:** Some initialization code.
		
		:param integer port: RTSP server port.
		:param integer bitrate: Video bitrate.
		:param integer framerate: Video framerate.
		"""
		self.bitrate = bitrate
		self.framerate = framerate
		self.server = Server()
		self.loop = None
		self.server.set_service(str(port))
		self.factory = []
		self.__addMedia()
class RTSPserver:
    """
	GStreamer RTSP server.
	"""
    def __init__(self, port, bitrate, framerate, path, videos):
        """
		**On init:** Some initialization code.
		
		:param port: RTSP server port.
		:type port: string or integer
		:param bitrate: The bitrate (in kbps).
		:type bitrate: string or integer
		:param framerate: The framerate (in fps).
		:type framerate: string or integer
		:param string path: Path to the video directory.
		:param list videos: List of available videos.
		"""
        #: The bitrate (in kbps).
        self.bitrate = bitrate
        #: The framerate (in fps).
        self.framerate = framerate
        #: Path to the video directory.
        self.path = path
        #: List of available videos.
        self.videos = videos
        #: GStreamer RTSP server instance.
        self.server = Server()
        #: Gstreamer loop.
        self.loop = None
        self.server.set_service(str(port))
        #: List of GStreamer RTSP factories.
        self.factory = []
        self.__addMedia()

    def __addMedia(self):
        """
		Add media to server.
		"""
        for i, video in enumerate(self.videos):
            for j in range(0, 4):
                launch = "filesrc location=" + self.path + "/" + video + " ! decodebin ! videorate ! video/x-raw-yuv,framerate=" + str(
                    self.framerate) + "/1 ! "
                launch += {
                    0:
                    "ffenc_h263 bitrate=" + str(self.bitrate) +
                    "000 ! rtph263pay name=pay0",
                    1:
                    "x264enc bitrate=" + str(self.bitrate) +
                    " ! rtph264pay name=pay0",
                    2:
                    "ffenc_mpeg4 bitrate=" + str(self.bitrate) +
                    "000 ! rtpmp4vpay name=pay0",
                    3:
                    "theoraenc bitrate=" + str(self.bitrate) +
                    " ! rtptheorapay name=pay0"
                }[j]
                mmap = self.server.get_media_mapping()
                self.factory.append(MediaFactory())
                self.factory[-1].set_launch(launch)
                self.factory[-1].set_shared(True)
                self.factory[-1].set_eos_shutdown(True)
                name = {
                    0: "/video" + str(i) + ".h263",
                    1: "/video" + str(i) + ".h264",
                    2: "/video" + str(i) + ".mpeg4",
                    3: "/video" + str(i) + ".theora"
                }[j]
                mmap.add_factory(name, self.factory[-1])
                self.server.set_media_mapping(mmap)

    def run(self):
        """
		Attach server and run the loop (see :attr:`loop`).
		"""
        if self.server.attach():
            self.loop = MainLoop()
            self.loop.run()
git = os.path.join(os.getcwd(), '.git')
if os.path.exists(git):
    sys.path.insert(0, os.getcwd())

from urlparse import urlparse
import gobject
gobject.threads_init()

import pygst
pygst.require("0.10")
from gst.rtspserver import Server
from rtsputils import RelayMediaFactory

local_url = sys.argv[1]
remote_url = sys.argv[2]

server = Server()
server.set_service(str(urlparse(local_url).port))

factory = RelayMediaFactory()
factory.props.location = remote_url
factory.set_shared(True)

mapping = server.get_media_mapping()
mapping.add_factory("/relay", factory)

server.attach()

loop = gobject.MainLoop()
loop.run()
Пример #6
0
class RTSPserver:
	"""
	GStreamer RTSP server.
	"""
	def __init__(self, port, bitrate, framerate, path, videos):
		"""
		**On init:** Some initialization code.
		
		:param port: RTSP server port.
		:type port: string or integer
		:param bitrate: The bitrate (in kbps).
		:type bitrate: string or integer
		:param framerate: The framerate (in fps).
		:type framerate: string or integer
		:param string path: Path to the video directory.
		:param list videos: List of available videos.
		"""
		#: The bitrate (in kbps).
		self.bitrate = bitrate
		#: The framerate (in fps).
		self.framerate = framerate
		#: Path to the video directory.
		self.path = path
		#: List of available videos.
		self.videos = videos
		#: GStreamer RTSP server instance.
		self.server = Server()
		#: Gstreamer loop.
		self.loop = None
		self.server.set_service(str(port))
		#: List of GStreamer RTSP factories.
		self.factory = []
		self.__addMedia()
	
	def __addMedia(self):
		"""
		Add media to server.
		"""
		for i, video in enumerate(self.videos):
			for j in range(0, 4):
				launch = "filesrc location="+self.path+"/"+video+" ! decodebin ! videorate ! video/x-raw-yuv,framerate="+str(self.framerate)+"/1 ! "
				launch += {
					0: "ffenc_h263 bitrate="+str(self.bitrate)+"000 ! rtph263pay name=pay0",
					1: "x264enc bitrate="+str(self.bitrate)+" ! rtph264pay name=pay0",
					2: "ffenc_mpeg4 bitrate="+str(self.bitrate)+"000 ! rtpmp4vpay name=pay0",
					3: "theoraenc bitrate="+str(self.bitrate)+" ! rtptheorapay name=pay0"
				}[j]
				mmap = self.server.get_media_mapping()
				self.factory.append(MediaFactory())
				self.factory[-1].set_launch(launch)
				self.factory[-1].set_shared(True)
				self.factory[-1].set_eos_shutdown(True)
				name = {
					0: "/video"+str(i)+".h263",
					1: "/video"+str(i)+".h264",
					2: "/video"+str(i)+".mpeg4",
					3: "/video"+str(i)+".theora"
				}[j]
				mmap.add_factory(name, self.factory[-1])
				self.server.set_media_mapping(mmap)
	
	def run(self):
		"""
		Attach server and run the loop (see :attr:`loop`).
		"""
		if self.server.attach():
			self.loop = MainLoop()
			self.loop.run()
import os
import sys
git = os.path.join(os.getcwd(), '.git')
if os.path.exists(git):
    sys.path.insert(0, os.getcwd())

import gobject
gobject.threads_init()

import pygst
pygst.require("0.10")
from gst.rtspserver import Server, MediaMapping, MediaFactory
from rtsputils import CamMediaFactory

server = Server()
server.set_service("8554")

factory = CamMediaFactory()
factory.props.video = True
factory.props.audio = False
factory.props.video_width = 320
factory.props.video_height = 240
factory.props.video_codec = "theora"
factory.set_shared(True)

mapping = server.get_media_mapping()
mapping.add_factory("/cam", factory)

server.attach()
    sys.path.insert(0, os.getcwd())

from urlparse import urlparse
import gobject

gobject.threads_init()

import pygst

pygst.require("0.10")
from gst.rtspserver import Server
from rtsputils import RelayMediaFactory

local_url = sys.argv[1]
remote_url = sys.argv[2]

server = Server()
server.set_service(str(urlparse(local_url).port))

factory = RelayMediaFactory()
factory.props.location = remote_url
factory.set_shared(True)

mapping = server.get_media_mapping()
mapping.add_factory("/relay", factory)

server.attach()

loop = gobject.MainLoop()
loop.run()
Пример #9
0
git = os.path.join(os.getcwd(), '.git')
if os.path.exists(git):
    sys.path.insert(0, os.getcwd())

import gobject

gobject.threads_init()

import pygst

pygst.require("0.10")
from gst.rtspserver import Server, MediaMapping, MediaFactory
from rtsputils import CamMediaFactory

server = Server()
server.set_service("8554")

factory = CamMediaFactory()
factory.props.video = True
factory.props.audio = False
factory.props.video_width = 320
factory.props.video_height = 240
factory.props.video_codec = "theora"
factory.set_shared(True)

mapping = server.get_media_mapping()
mapping.add_factory("/cam", factory)

server.attach()
Пример #10
0
class RTSPserver:
	"""
	GStreamer RTSP server.
	"""
	def __init__(self, port, bitrate, framerate):
		"""
		**On init:** Some initialization code.
		
		:param integer port: RTSP server port.
		:param integer bitrate: Video bitrate.
		:param integer framerate: Video framerate.
		"""
		self.bitrate = bitrate
		self.framerate = framerate
		self.server = Server()
		self.loop = None
		self.server.set_service(str(port))
		self.factory = []
		self.__addMedia()
	
	def __addFactory(self,url,factory):
		mmap = self.server.get_media_mapping()
		self.factory.append(factory)
		mmap.add_factory(url,factory)
		self.server.set_media_mapping(mmap)
		print "Add Service rtsp://"+socket.gethostname()+":" + self.server.get_service() + url

	def __addMedia(self):
		"""
		videotest
		"""                                
		launch = "videotestsrc pattern=ball ! timeoverlay halign=right valign=top ! clockoverlay halign=left valign=top time-format=\"%Y/%m/%d %H:%M:%S\" ! "
		launch += "x264enc bitrate="+str(self.bitrate)+" ! rtph264pay name=pay0"                
		mfactory = MediaFactory()
		mfactory.set_launch(launch)
		mfactory.set_shared(True)
		mfactory.set_eos_shutdown(True)
		self.__addFactory("/videotest.h264", mfactory)

		"""
		webcam
		"""
		launch = "v4l2src ! video/x-raw-yuv,width=320,height=240,depth=32,framerate="+str(self.framerate)+"/1 ! timeoverlay halign=right valign=top ! clockoverlay halign=left valign=top time-format=\"%Y/%m/%d %H:%M:%S\" ! queue ! "
		launch += "x264enc bitrate="+str(self.bitrate)+" ! rtph264pay name=pay0"                
		mfactory = MediaFactory()
		mfactory.set_launch(launch)
		mfactory.set_shared(True)
		mfactory.set_eos_shutdown(True)
		self.__addFactory("/v4l2.h264", mfactory)
		
	
	def run(self):
		"""
		Attach server and run the loop (see :attr:`loop`).
		"""
		if self.server.attach():
			self.loop = MainLoop()
			self.loop.run()
	
	def stop(self):
		self.loop.quit()