首页 > 其他分享 >ffmpeg cuda加速 h264->hevc(h265) 缩小存储空间

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

时间:2022-08-15 15:06:45浏览次数:88  
标签:hevc ffmpeg h264 cuda 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,cuda,file,path,os
From: https://www.cnblogs.com/simp/p/16588227.html

相关文章

  • 使用ffmpeg
    推荐两个CSDN上的博主:徐福记456雷霄骅 使用ffmpeg需要先下载相关的头文件和库文件,可以选择在官网上下载。建议下载shared版本和dev版本,两个版本都会有include文件,sha......
  • FFmpeg学习:frame的复制和拷贝
    实践中经常遇到frame的复制拷贝,特此记录一下;深拷贝连同数据也被复制一份浅拷贝只拷贝参数,具有相同的数据指针相关apiav_frame_ref()【函数原型】点击查看代码......
  • ffmpeg以RTP协议推送视频
    docker编译环境dockerpullabdulachik/ffmpeg.js:latestdockerrun-it-p8080:8080-v/Users/workspace/Downloads/ffmpeg_wasm:/tmp--privileged=trueabdulachik/......
  • 浏览器运行ffmpeg
    docker编译环境docker镜像dockerpullabdulachik/ffmpeg.js:latestdockerrun-it-p8090:8090-v/Users/workspace/Downloads/ffmpeg_wasm:/tmp--privileged=true......
  • 利用ffmpeg合并音频和视频
    一、当视频文件中没有音频时将audioname音频与videoname视频替换ffmpeg-ivideoname.mp4-imusic.mp3-c:vcopy-c:aaac-strictexperimentaloutputname.mp4二、当......
  • ffmpeg截取视频的片段
    1、执行如下命令:ffmpeg-ss00:00:00-to00:05:23-iimput.mp4-y-fmp4-vcodeccopy-acodeccopy-q:v1output.mp42、参数说明:-ss指定要截取的视频的起始时间。......