diff --git a/clipper/api.py b/clipper/api.py index ad2899b..6d3933a 100644 --- a/clipper/api.py +++ b/clipper/api.py @@ -83,7 +83,7 @@ class ChatConnection: try: while True: - msg = self.connection.recv(1024).decode('utf-8') + msg = self.connection.recv(2048).decode('utf-8') if "PING :tmi.twitch.tv" in msg: self.connection.send(bytes("PONG :tmi.twitch.tv\r\n", "UTF-8")) logger.info("RECEIVED Ping from server. Answered") diff --git a/clipper/clipper.py b/clipper/clipper.py index 676e272..96458be 100644 --- a/clipper/clipper.py +++ b/clipper/clipper.py @@ -1,6 +1,7 @@ import logging import os import subprocess +import sys from datetime import datetime from datetime import timedelta @@ -14,7 +15,7 @@ class Clipper: except BaseException as e: logger.error(e) - def _run(self, video_file, chat_peaks_file, output_folder): + def _run(self, source_video_file, chat_peaks_file, output_folder): if not os.path.isdir(output_folder): os.mkdir(output_folder) @@ -36,25 +37,28 @@ class Clipper: ffmpeg_start_time = start_time.strftime("%H:%M:00") ffmpeg_end_time = end_time.strftime("%H:%M:00") - output_file = os.path.join(output_folder, f"clip_{counter}.mp4") - self._cut_clip(video_file, ffmpeg_start_time, ffmpeg_end_time, output_file) + ffmpeg_output_file = os.path.join(output_folder, f"clip_{counter}.mp4") + logger.info("ffmpeg start time %s", ffmpeg_start_time) + logger.info("ffmpeg end time %s", ffmpeg_end_time) + logger.info("ffmpeg output file %s", ffmpeg_output_file) + self._cut_clip(source_video_file, ffmpeg_start_time, ffmpeg_end_time, ffmpeg_output_file) counter = counter + 1 - def _cut_clip(self, video_file, start_time, end_time, output_name): + def _cut_clip(self, source_video_file, start_time, end_time, output_name): # ffmpeg -ss 00:01:00 -to 00:02:00 -i input.mp4 -c copy output.mp4 try: subprocess.call([ "ffmpeg", - "-err_detect", - "ignore_err", "-ss", start_time, "-to", end_time, "-i", - video_file, + source_video_file, "-c", "copy", + "-err_detect", + "ignore_err", output_name ]) @@ -64,9 +68,18 @@ class Clipper: if __name__ == "__main__": - "/Users/vetalll/Projects/Python/TwitchClipper/recorded/" - video = "/Users/vetalll/Projects/Python/TwitchClipper/recorded/icebergdoto/17-08-2022_13-30-20/video.mp4" - peaks = "/Users/vetalll/Projects/Python/TwitchClipper/recorded/icebergdoto/17-08-2022_13-30-20/chat_peaks.txt" - result = "/Users/vetalll/Projects/Python/TwitchClipper/recorded/icebergdoto/17-08-2022_13-30-20/clips" + args = sys.argv + if len(args) != 4: + logger.error("Wrong arguments passed") + logger.error("Usage clipper.py video_file chat_peaks_file output_folder") + exit(1) + + video = args[1] + peaks = args[2] + result = args[3] + # "/Users/vetalll/Projects/Python/TwitchClipper/recorded/" + # video = "/Users/vetalll/Projects/Python/TwitchClipper/recorded/icebergdoto/17-08-2022_14-29-53/video.mp4" + # peaks = "/Users/vetalll/Projects/Python/TwitchClipper/recorded/icebergdoto/17-08-2022_14-29-53/chat_peaks.txt" + # result = "/Users/vetalll/Projects/Python/TwitchClipper/recorded/icebergdoto/17-08-2022_14-29-53/clips" clipper = Clipper() clipper.run(video, peaks, result)