在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

选择操作系统

3c58a3b66257403fad1e15f5945bfba1.png


下载对应自己linux版本的文件

查看linux系统版本命令


lsb_release -a


56fe809910884acdb640baabfcf44ef1.png

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

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

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


ffmpeg -i sourcePath tagPath
• 1


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
相关文章
|
1月前
|
Ubuntu Linux 网络安全
在Linux上安装软件有多种方法
在Linux上安装软件有多种方法
107 64
|
16天前
|
Linux Shell 数据库
文件查找是Linux用户日常工作的重要技能介绍了几种不常见的文件查找方法
文件查找是Linux用户日常工作的重要技能。本文介绍了几种不常见的文件查找方法,包括使用`find`和`column`组合、`locate`和`mlocate`快速查找、编写Shell脚本、使用现代工具`fd`、结合`grep`搜索文件内容,以及图形界面工具如`Gnome Search Tool`和`Albert`。这些方法能显著提升文件查找的效率和准确性。
38 2
|
22天前
|
运维 Linux
Linux查找占用的端口,并杀死进程的简单方法
通过上述步骤和命令,您能够迅速识别并根据实际情况管理Linux系统中占用特定端口的进程。为了获得更全面的服务器管理技巧和解决方案,提供了丰富的资源和专业服务,是您提升运维技能的理想选择。
24 1
|
22天前
|
运维 安全 Linux
Linux文件清空的五种方法总结分享
每种方法各有优势,选择最合适的一种或几种,可以极大提高您的工作效率。更多有关Linux系统管理的技巧与资源,欢迎访问,持续提升您的运维技能。
61 1
|
30天前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
82 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
1月前
|
Linux 数据安全/隐私保护 索引
linux inode索引节点使用率100% 解决+hustoj忘记密码+最新MDK注册方法
linux inode索引节点使用率100% 解决+hustoj忘记密码+最新MDK注册方法
42 1
|
1月前
|
监控 安全 Linux
使用NRPE和Nagios监控Linux系统资源的方法
通过遵循以上步骤,可以有效地使用NRPE和Nagios监控Linux系统资源,确保系统运行稳定,并及时响应任何潜在的问题。这种方法提供了高度的可定制性和灵活性,适用于从小型环境到大型分布式系统的各种监控需求。
44 2
|
2月前
|
Shell Linux Python
python执行linux系统命令的几种方法(python3经典编程案例)
文章介绍了多种使用Python执行Linux系统命令的方法,包括使用os模块的不同函数以及subprocess模块来调用shell命令并处理其输出。
35 0
|
3月前
|
Ubuntu Linux 虚拟化
安装Windows Linux 子系统的方法:适用于windows 11 版本
本文提供了在Windows 11系统上安装Linux子系统(WSL)的详细步骤,包括启用子系统和虚拟化功能、从Microsoft Store安装Linux发行版、设置WSL默认版本、安装WSL2补丁,以及完成Ubuntu的首次安装设置。
881 2
|
3月前
|
Ubuntu Linux
在Linux中,软件安装和卸载的常见方法?
在Linux中,软件安装和卸载的常见方法?