在linux下使用ffmpeg方法
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
在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
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |