Exemple #1
0
 def __init__(self, path=None):
   if path:
     self.path = os.path.abspath(path)
   else:  
     name = 'live_segmenter.exe' if WIN32 else 'live_segmenter'
     self.path = os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])), name)
   self.cmd_tmpl = string.Template(helper.shellquote(self.path)+" 10 $tmpDir $segmentPrefix mpegts $startSegment")
   if not helper.validate_exec(self.path):
     DISABLE_LIVE_TRANSCODE = True
     print "Live transcode disabled. Could not find segmenter at path: "+self.path
Exemple #2
0
 def __init__(self, path=None):
   if path:
     self.path = os.path.abspath(path)
   else: 
     name = 'ffmpeg.exe' if WIN32 else 'ffmpeg'
     self.path = os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])), name)
   self.cmd_tmpl = string.Template(helper.shellquote(self.path)+" "
     "-ss $startTime "
     "-i \"$videoPath\" "
     "-vcodec libx264 -r 23.976 "
     "-b $bitrate -bt $bitrate -loglevel quiet "
     "-vf \"crop=iw:ih:0:0,scale=$frameWidth:$frameHeight\" -aspect \"$frameWidth:$frameHeight\" "
     "-acodec libmp3lame -ab 48k -ar 48000 -ac 2 -async 1 "
     "-bufsize 1024k -threads 4 -preset fast -tune grain "
     "-f mpegts - ")
   if not helper.validate_exec(self.path):
     DISABLE_LIVE_TRANSCODE = True
     print "Live transcode disabled. Could not find ffmpeg at path: "+self.path
Exemple #3
0
 def call_ffmpeg(self, **kwargs):
   self.killProcessing()
   cmd = self.transcoder.ffmpeg.cmd_tmpl.substitute(
     startTime=int(kwargs['start_segment'])*self.segment_duration,
     videoPath=self.videoPath, # FIXME last change monday 9:04 aM
     #duration=kwargs['num_segments']*self.segment_duration,
     frameWidth=self.frame_size[0],
     frameHeight=self.frame_size[1],
     bitrate=int(kwargs['bitrate'])*1000,
   )
   segmenter_cmd = self.transcoder.segmenter.cmd_tmpl.substitute(
     tmpDir=helper.shellquote(self.transcoder.tmp_dir), # and this ughhh shellex? or what nib
     startSegment=kwargs['start_segment'],
     segmentPrefix=self.md5+"-"+kwargs['bitrate'],
   )
   with open(os.devnull, 'w') as fp:
     self.current_ffmpeg_process = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE, stderr=fp, startupinfo=helper.noCmd())
     self.current_segmenter_process = subprocess.Popen(shlex.split(segmenter_cmd), stdin=self.current_ffmpeg_process.stdout, stdout=fp, stderr=fp, startupinfo=helper.noCmd())