ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ffmpeg cuda加速 h264->hevc(h265) 缩小存储空间

2022-08-15 15:04:34  阅读:209  来源: 互联网

标签:hevc ffmpeg h264 nvenc file path os


参考的原文链接 https://www.cnblogs.com/Hakurei-Reimu-Zh/p/14999269.html

1.安装cuda

这里我只安装最新版驱动也是可以的没有刻意去安装cuda

2.下载编译好的全版本ffmpeg

https://www.gyan.dev/ffmpeg/builds/

3.查询支持的编解码器类型

ffmpeg -codecs | findstr cuvid
这里我需要的是 hevc_nvenc

下面是我写的脚本用于转换的



import os

from functools import wraps, partial
#扫描装饰器 
def scan(func=None, *, path=None):
    if func is None:
        return partial(scan, path=path)
    @wraps(func)
    def wrapper(path):
        ls_dir = os.listdir(path)
        for file_name in ls_dir:
            file_path = os.path.join(path,file_name)
            if os.path.isfile(file_path):
                func(file_path)
            elif os.path.isdir(file_path):
                wrapper(file_path)
    return wrapper



def run(src,dst):
    print(src,dst)
    cmd = f'ffmpeg -i "{src}" -vcodec  hevc_nvenc "{dst}"'
    os.system(cmd)
@scan
def main(path):
    if "hevc_nvenc" not in path and path.endswith(".mp4"):#这里的mp4可以修改为你想要的视频后缀名,已经转过得结果不转
        basename = os.path.basename(path)
        dirname = os.path.dirname(path)
        fname,ext = os.path.splitext(basename)
        newname = fname+"hevc_nvenc.mp4"
        newpath = os.path.join(dirname,newname)
        if not os.path.exists(newpath):#已经转过跳过
            run(path,newpath)
main(rf"/mnt/sdb1/")

标签:hevc,ffmpeg,h264,nvenc,file,path,os
来源: https://www.cnblogs.com/simp/p/16588227.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有