热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在linux下使用ffmpeg方法

在linux下使用ffmpeg方法简介ffmpegforlinux简介ffmpeg是专门用于处理音频视频的包,它不属于python内置包,FFmpe


在linux下使用ffmpeg方法

  • 简介
  • ffmpeg for linux


简介

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+' '+tagPathprint(">>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

推荐阅读
  • OAuth2.0指南
    引言OAuth2.0是一种应用之间彼此访问数据的开源授权协议。比如,一个游戏应用可以访问Facebook的用户数据,或者一个基于地理的应用可以访问Foursquare的用户数据等。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 小程序自动授权和手动接入的方式及操作步骤
    本文介绍了小程序支持的两种接入方式:自动授权和手动接入,并详细说明了它们的操作步骤。同时还介绍了如何在两种方式之间切换,以及手动接入后如何下载代码包和提交审核。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • Day2列表、字典、集合操作详解
    本文详细介绍了列表、字典、集合的操作方法,包括定义列表、访问列表元素、字符串操作、字典操作、集合操作、文件操作、字符编码与转码等内容。内容详实,适合初学者参考。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文讨论了如何使用GStreamer来删除H264格式视频文件中的中间部分,而不需要进行重编码。作者提出了使用gst_element_seek(...)函数来实现这个目标的思路,并提到遇到了一个解决不了的BUG。文章还列举了8个解决方案,希望能够得到更好的思路。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • 移动传感器扫描覆盖摘要:关于传感器网络中的地址覆盖问题,已经做过很多尝试。他们通常归为两类,全覆盖和栅栏覆盖,统称为静态覆盖 ... [详细]
  • 【Vue基础】监听属性watch
    Vue监听属性是watch,我们可以通过watch来响应数据的变化。代码示例: ... [详细]
author-avatar
提着变形金刚的Oceannk_737
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有