X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=blobdiff_plain;f=cis%2Fapi%2Favhandling.py;h=27c9a5d0c07849bad8d9cf3f4ebd0102ec134ead;hb=c7b70f31aa7d34d184c20ac6258fec2174ea8d67;hp=e300075e13f838c6e5d0b4d7a0257f27a2ce5e46;hpb=3cf4f616f7d4095623ad5eae5db9fb1149ee1238;p=living-lab-site.git diff --git a/cis/api/avhandling.py b/cis/api/avhandling.py index e300075..27c9a5d 100644 --- a/cis/api/avhandling.py +++ b/cis/api/avhandling.py @@ -96,7 +96,7 @@ class FFmpegTranscoder(base.BaseTranscoder): log.close() - return output_file + return self.output_file class FFmpegThumbExtractor(base.BaseThumbExtractor): @@ -144,28 +144,35 @@ class FFmpegThumbExtractor(base.BaseThumbExtractor): 'FFmpeg created an empty file.') def get_video_duration(self): - return FFmpegAVInfo.get_video_duration(self.input_file) + return FFprobeAVInfo.get_video_duration(self.input_file) -class FFmpegAVInfo(base.BaseAVInfo): +class FFprobeAVInfo(base.BaseAVInfo): prog_bin = "ffprobe" + log_file = 'log/FFprobeAVInfo.log' + @staticmethod def get_video_duration(input_file, formated=False): - args = FFmpegAVInfo.prog_bin + ' -show_format "' \ + args = FFprobeAVInfo.prog_bin + ' -show_format "' \ + input_file + '"' # READ handler for process's output. p = subprocess.Popen(args, shell=True, - stdout=subprocess.PIPE, stderr=open(os.devnull, 'w')) + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) pipe = p.stdout + # WRITE handler for logging. + log = open(FFprobeAVInfo.log_file, 'w') + log.write(args + '\n') + # Parse ffprobe's output. while True: line = pipe.readline() if len(line) == 0: break + log.write(line) # Search for the line which contains duration information. m = re.match(r"duration=([\d\.]+)", line)