编辑
2025-01-23
博客
00

使用 trycatch 只能处理 Python 中的一部分异常;但如果异常是由于外部程序(如 ffmpeg)调用时产生的,那么这种异常很可能会直接导致程序崩溃,不给你使用 trycatch 处理异常的机会。

一个解决办法是用multiprocessing另起一个子进程来运行相关的代码。如果程序崩溃,也只会让子进程终止,不会影响程序的整体运行。

python
import multiprocessing from moviepy.video.io.VideoFileClip import VideoFileClip def process_video(input_file, output_file): try: clip = VideoFileClip(input_file) clip.write_videofile(output_file, codec="libx264") except Exception as e: print(f"An error occurred while processing the video: {e}") def safe_process_video(input_file, output_file): process = multiprocessing.Process(target=process_video, args=(input_file, output_file)) process.start() process.join() if process.exitcode != 0: print(f"Video processing failed with exit code {process.exitcode}") # 示例:使用 multiprocessing 处理视频 safe_process_video("input.mp4", "output.mp4")

本文作者:JiangOil

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

Map Flag Counter