1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/gmyth-stream/server/0.1/plugins/media/vlc.py Thu Apr 19 21:22:26 2007 +0100
1.3 @@ -0,0 +1,80 @@
1.4 +import os
1.5 +import sys
1.6 +import time
1.7 +import socket
1.8 +import ConfigParser
1.9 +
1.10 +class Media:
1.11 +
1.12 + def __init__(self, config):
1.13 +
1.14 + self.config = config
1.15 + self.pipe = ""
1.16 + self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1.17 +
1.18 + self.path = config.get("Vlc", "path")
1.19 + self.host = config.get("Vlc", "host")
1.20 + self.port = int(config.get("Vlc", "port"))
1.21 + self.pwd = config.get("Vlc", "pwd")
1.22 +
1.23 + # exec VLC
1.24 + pid = os.fork()
1.25 + if (pid == 0):
1.26 + #child
1.27 + print "ESTOU EM CHILD"
1.28 + self.path += " -I telnet -d 1> /dev/null 2> /dev/null &"
1.29 + os.system(self.path)
1.30 + sys.exit(0)
1.31 + else:
1.32 + print "ESTOU EM PARENT 1"
1.33 + time.sleep(3)
1.34 + print "ESTOU EM PARENT 2"
1.35 + self.sock.connect( (self.host, self.port) )
1.36 + self.sock.send("%s\n" % self.pwd)
1.37 +
1.38 +
1.39 + def insert_file(self, filename):
1.40 +
1.41 + self.sock.send("setup output0 input %s\n" % filename)
1.42 +
1.43 +
1.44 +
1.45 + def setup(self, filename, mux, vcodec, vbitrate,\
1.46 + fps, acodec, abitrate, width, height, port):
1.47 +
1.48 + self.filename = filename
1.49 + self.mux = mux
1.50 + self.vcodec = vcodec
1.51 + self.vbitrate = int(vbitrate)
1.52 + self.fps = int(fps)
1.53 + self.acodec = acodec
1.54 + self.abitrate = int(abitrate)
1.55 + self.width = int(width)
1.56 + self.height = int(height)
1.57 +
1.58 + self.port = int(port)
1.59 +
1.60 +
1.61 + self.pipe = "#transcode{vcodec=%s,vb=%d,"\
1.62 + "fps=25.0,scale=1,acodec=mpga,"\
1.63 + "ab=64,channels=1,width=%d,height=%d}"\
1.64 + ":duplicate{dst=std{access=http,"\
1.65 + "mux=mpeg1,dst=:%d}}" % (self.vcodec, self.vbitrate,\
1.66 + self.widht, self.height,\
1.67 + self.port)
1.68 +
1.69 + self.sock.send("setup output0 broadcast %s\n" % self.pipe)
1.70 + self.insert_file(self.filename)
1.71 +
1.72 + def play(self):
1.73 +
1.74 + print "Trying to play: %s" % self.pipe
1.75 + self.sock.send("control output0 play\n")
1.76 +
1.77 +
1.78 + def stop(self):
1.79 +
1.80 + print "Trying to stop: %s" % self.pipe
1.81 + self.sock.send("control output0 stop\n")
1.82 +
1.83 +