关于Ubuntu python程序利用lixb264生成h264格式的视频相关问题
安装nasm
从官网下载:https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/
安装包页面上的nasm-2.13.03.tar.bz2
# 解压
tar -xvjf nasm-2.13.03.tar.bz2
# 配置
cd nasm-2.13.03
./configure
# 编译
make
# 安装到系统
sudo make install
安装libx264
x264库下载地址:http://www.videolan.org/developers/x264.html
下载 x264-master.tar.bz2
# 解压
tar -xvjf x264-master.tar.bz2
# 配置
cd x264-snapshot
./configure --enable-shared --disable-asm
# 编译
make
# 安装到系统
sudo make install# 添加环境变量
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
echo $PKG_CONFIG_PATH
利用命令x264 --version
查看是否配置成功
安装ffmpeg
从官网下载ffmpeg ffmpeg-snapshot.tar.bz2
tar -xvjf ffmpeg-snapshot.tar.bz2
cd ffmpeg-snapshot/ffmpeg
./configure --disable-debug --enable-static --enable-libx264 --enable-gpl
make
# 安装到系统
sudo make install
sudo vi /etc/ld.so.conf
# 文件下方添加 libx264库文件路径
/usr/local/lib
sudo ldconfig
尝试利用ffmpeg转码视频
ffmpeg -i a.mp4 -vcodec libx264 b.mp4
若转出视频为h.264格式则说明成功,可以利用Python对视频帧生成H264格式的视频了,样例如下(事先安装好cv2和scikit-video包):
import cv2
import skvideo.iocap = cv2.VideoCapture('video/a.mp4')
outputfile = "video/b.mp4"
# 获取视频帧速率 FPS
frame_fps = int(cap.get(cv2.CAP_PROP_FPS))
# 获取视频帧宽度和高度
frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
print("video fps={},width={},height={}".format(frame_fps, frame_width, frame_height))out = skvideo.io.FFmpegWriter(outputfile,outputdict={'-vcodec': 'libx264'}) # ----------------------
count = 0
while cap.isOpened():ret, frame = cap.read()if not ret:print("read over or error!")breakout.writeFrame(frame) # -------------------------cv2.imshow("result", frame)if cv2.waitKey(2) & 0xFF == ord('q'): # 按q退出break
out.close() # -----------------------
cap.release()
cv2.destroyAllWindows()
其实,这里面最重要的步骤就是安装可编码libx264的ffmpeg,期间出过很多错,最重要的就是在利用configure文件生成配置项时,必须要添加--enable-libx264 --enable-gpl
命令,否则,无论如何ffmpeg都显示找不到libx264编码器,只能一步步地尝试,无数遍的make clean,最终才成功了。真的不容易!
参考文档:
【音视频】Ubuntu安装开源H.264标准编解码库x264
FFmpeg转码错误Cannot load libcuda.so.1
关于Ubuntu python程序利用lixb264生成h264格式的视频相关问题相关推荐
- python处理文本文件实现生成指定格式文件的方法
python处理文本文件实现生成指定格式文件的方法 关于python处理文本文件实现生成指定格式文件,很多朋友都不知道该怎么弄. 下面是具体代码,希望对大家有帮助 可以在下面复制: import os ...
- 基于python程序利用贪心算法解决旅行家的预算问题
程序已通过检测: https://www.dotcpp.com/oj/problem1640.html 问题描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定 ...
- 学习python+pycharm利用pyQt5生成UI界面
今天学习并安装了pyQt5,现总结如下: 一.使用pycharm安装软件 路径:File->settings ->Project->Project Interpreter->点 ...
- 微信小程序利用canvas生成海报-------图片为网络图片
根据我们老总的业务需求,迫不得已,我做了这个canvas绘制的海报,感觉基本上可以解决现在海报所遇到的大部分问题了,献给那些没有做过的小伙伴们,话不多说,先上我做的效果 上代码 <style&g ...
- java利用poi生成pptx格式的ppt
最近开发了一个自定义ppt模板生成ppt的需求,记录一个小demo 官方文档 ppt文档链接 w3c的文档ppt文档 1.首先打入poi的maven依赖 <!-- https://mvnrepo ...
- ffmpeg转h264格式的视频
2019独角兽企业重金招聘Python工程师标准>>> ffmpeg版本0.10 ffmpeg -i source.f4v -ac 1 -ar 16000 -acodec pcm_a ...
- 用于计算圆柱体体积和面积的Python程序
在本文中,我们将研究一个 python 程序来计算圆柱体的体积和面积. 圆柱体定义为具有两个与矩形曲面连接的圆的 3D 对象.圆柱体的特殊之处在于,即使它仅使用两个维度(即高度和半径)进行测量,圆柱体 ...
- 在Windows上双击运行Python程序不会自动退出的方法
文章目录 在Windows上双击运行Python程序不会自动退出的方法 前言 将python.exe添加到环境变量中 一个Python程序例子 双击运行Python程序报错 双击运行Windows C ...
- python可以在多种平台运行、体现了_在Windows平台上编写的Python程序无法在Unix平台运行。...
问题:在Windows平台上编写的Python程序无法在Unix平台运行. 更多相关问题 某船公司2003年2月,建造了两艘航行于武汉-南京的2000吨油船,双壳结构形式,至今使用良好,为公司创 肾病 ...
- 利用photoshop生成acv文件
在研究滤镜的时候,发现有一些滤镜资源是acv格式的,百度了解后,acv文件是ps保存曲线效果的. 知道这个,我们就知道acv格式的文件就是为了给图片做曲线效果处理的,那么怎么生成acv文件呢? 下面就 ...
最新文章
- R创建分类变量(categorical variable)
- 中小型网络的域环境搭建--第五季(搭建FTP服务器)
- 章鱼有9个大脑能编辑基因,智商高到无法理解,为何没发展出文明
- java properties读取 封装_java properties 文件读取踩坑记
- 使用AndroidStudio编译NDK的方法及错误解决方案
- scala typetag java,scala – 从类型中获取TypeTag?
- 动态规划1--最长公共子序列
- python生成器杨辉三角_python 生成器生成杨辉三角的方法(必看)
- UDP(发短信:简单模拟)
- 安装centos7失败认不到硬盘_CentOS7 用U盘安装卡住无法进入安装界面解决方案
- [c++基础] const char and static const char
- 左手自研,右手开源,技术解读华为云如何领跑容器市场
- 百度课程——基于深度学习的自然语言处理
- Android 自动接听来电
- (大概是最全的解决方法)使用bandicam录制视频导入pr后音画不同步问题
- 今天买了正版的beyondcompare 4.0
- Red Hat Enterprise Linux9 + Zabbix 6.2.3 + Grafana 9.2.0
- 你管这叫操作系统源码(十五)
- 低版本MAC如何升级系统
- Matplotlib进阶教程:布局讲解