• 在linux下使用ffmpeg方法


    linux下使用ffmpeg方法

    简介

    ffmpeg是专门用于处理音频视频的包,它不属于python内置包,

    FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

    ffmpeg支持在linux、window、Mac OS等操作系统进行编译运行。

    视频文件属性由文件格式和视频编码组成,opencv-python,处理视频,生成的视频。
    opencv支持的编码类型有:

    参数说明
    cv2.VideoWriter_fourcc(‘I’,‘4’,‘2’,‘0’)YUV类型,文件后缀.avi
    cv2.VideoWriter_fourcc(‘P’,‘I’,‘M’,‘I’)MPEG-1类型,文件后缀.avi
    cv2.VideoWriter_fourcc(‘T’,‘H’,‘E’,‘O’)Ogg Vorbis类型,文件后缀.ogv
    cv2.VideoWriter_fourcc(‘X’,‘V’,‘I’,‘D’)MPEG-4类型,文件后缀.avi
    cv2.VideoWriter_fourcc(‘F’,‘L’,‘V’,‘1’)Flash类型,文件后缀.flv

    目前各大开放平台,通常都支持视频编码格式为h264的视频,从技术来说,我们深度学习通过opencv生成的视频是无法在平台前端上展示的。因此需要对视频进行转码,由MPEG-4转为h264,

    我查阅到的方法,通过openh264库实现或者通过ffmpeg库实现。

    FFmpeg包含三个部分:工具软件、供开发者使用的SDK,开源代码,其中工具软件就是我们要用到的

    ffmpeg for linux

    打开官网下载地址:https://ffmpeg.org/download.html
    选择操作系统
    在这里插入图片描述

    下载对应自己linux版本的文件
    在这里插入图片描述
    查看linux系统版本命令

    lsb_release -a
    

    在这里插入图片描述

    我查阅资料很多说下载后还需要配置环境,我在配置中出现了很多报错的问题,没有解决,
    在这里插入图片描述

    我的方法,可以直接使用这个工具软件实现视频转码,如下图所示,就是提供转码的可执行文件。
    在这里插入图片描述

    在终端输入命令,即可实现h264视频转码

    ffmpeg -i sourcePath tagPath
    

    sourcePath:输入的视频文件路径
    tag:输出视频的文件路径

    如果想实现python脚本化,也可以通过os库实现,实例代码如下:

    def video_transform(self,sourcePath,tagPath):
    
        	cmd ='ffmpeg-5.1.1-amd64-static/ffmpeg -i '+sourcePath+' '+tagPath
        	print(">>cmd:\n %s"%(cmd))
    	    result=os.popen(cmd).read().strip()
    	    print(">>result:%s"%(result))
    

    如果需要截取时间,输入命令

    ffmpeg -ss 00:00:15 -t 00:00:05 -i 输入视频.mp4 -vcodec copy -acodec copy 输出视频.mp4
    
    • -ss:开始切割时间;
    • -t:结束切割时间;
    • -vcodec copy:强制使用 codec 编解码方式,如果用copy表示原始编解码数据必须被拷贝(转雷神描述),可以简写为 -c:v copy;
    • -acodec copy:同上,可以简写为 -c:a copy
  • 相关阅读:
    用PyTorch简单实现线性回归
    vue中替换全局字体
    Linux环境下fastdfs部署
    Windows下使用图形化的Havoc C2
    Python入门 函数 基础入门篇
    子网ip和子网掩码的关系
    bugkuctf——baby_flag.txt——Misc
    Learn How Long Does It Take To Learn C++ From Starting
    计算机网络概述
    【C++从0到王者】C++11(全文三万字,超详解)
  • 原文地址:https://blog.csdn.net/weixin_42010722/article/details/126951341