Python中防止因外部调用导致程序崩馈

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

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

 

 

复制代码
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")
复制代码

 

 

https://www.codebonobo.tech/post/19

 

posted @   酱_油  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇
点击右上角即可分享
微信分享提示