VideoLingo icon indicating copy to clipboard operation
VideoLingo copied to clipboard

苹果芯片使用videotoolbox硬件加速FFmpeg视频合成

Open vanch007 opened this issue 1 year ago • 4 comments

def check_gpu_available(): """检查是否可以使用GPU加速""" system = platform.system() machine = platform.machine()

# 首先检查是否是 Apple Silicon
if system == 'Darwin' and machine == 'arm64':
    return 'videotoolbox'

# 然后检查 NVIDIA GPU
try:
    if system == 'Windows':
        subprocess.run(['nvidia-smi'], capture_output=True, check=True)
        return 'nvidia'
    elif system == 'Linux':
        subprocess.run(['which', 'nvidia-smi'], capture_output=True, check=True)
        return 'nvidia'
except subprocess.CalledProcessError:
    pass

return None

vanch007 avatar Jan 24 '25 16:01 vanch007

加速前

Image 加速后 Image 我的 m1max 有 3 倍多加速,用的同视频测试的

vanch007 avatar Jan 26 '25 12:01 vanch007

佬,请问下是修改这段代码吗 `def check_gpu_available(): #try: #result = subprocess.run(['ffmpeg', '-encoders'], capture_output=True, text=True) #return 'h264_nvenc' in result.stdout #except: #return False """检查是否可以使用GPU加速""" system = platform.system() machine = platform.machine() # 首先检查是否是 Apple Silicon if system == 'Darwin' and machine == 'arm64': return 'videotoolbox'

# 然后检查 NVIDIA GPU
try:
    if system == 'Windows':
        subprocess.run(['nvidia-smi'], capture_output=True, check=True)
        return 'nvidia'
    elif system == 'Linux':
        subprocess.run(['which', 'nvidia-smi'], capture_output=True, check=True)
        return 'nvidia'
except subprocess.CalledProcessError:
    pass

return None

`

2982136527 avatar Feb 12 '25 15:02 2982136527

快是快了,视频文件大的离谱

dbooodb avatar Feb 21 '25 14:02 dbooodb

快是快了,视频文件大的离谱

大概比默认配置大多少?

wendayuan avatar Feb 27 '25 14:02 wendayuan