安装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格式的视频相关问题相关推荐

  1. python处理文本文件实现生成指定格式文件的方法

    python处理文本文件实现生成指定格式文件的方法 关于python处理文本文件实现生成指定格式文件,很多朋友都不知道该怎么弄. 下面是具体代码,希望对大家有帮助 可以在下面复制: import os ...

  2. 基于python程序利用贪心算法解决旅行家的预算问题

    程序已通过检测:  https://www.dotcpp.com/oj/problem1640.html 问题描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定 ...

  3. 学习python+pycharm利用pyQt5生成UI界面

    今天学习并安装了pyQt5,现总结如下: 一.使用pycharm安装软件 路径:File->settings ->Project->Project Interpreter->点 ...

  4. 微信小程序利用canvas生成海报-------图片为网络图片

    根据我们老总的业务需求,迫不得已,我做了这个canvas绘制的海报,感觉基本上可以解决现在海报所遇到的大部分问题了,献给那些没有做过的小伙伴们,话不多说,先上我做的效果 上代码 <style&g ...

  5. java利用poi生成pptx格式的ppt

    最近开发了一个自定义ppt模板生成ppt的需求,记录一个小demo 官方文档 ppt文档链接 w3c的文档ppt文档 1.首先打入poi的maven依赖 <!-- https://mvnrepo ...

  6. ffmpeg转h264格式的视频

    2019独角兽企业重金招聘Python工程师标准>>> ffmpeg版本0.10 ffmpeg -i source.f4v -ac 1 -ar 16000 -acodec pcm_a ...

  7. 用于计算圆柱体体积和面积的Python程序

    在本文中,我们将研究一个 python 程序来计算圆柱体的体积和面积. 圆柱体定义为具有两个与矩形曲面连接的圆的 3D 对象.圆柱体的特殊之处在于,即使它仅使用两个维度(即高度和半径)进行测量,圆柱体 ...

  8. 在Windows上双击运行Python程序不会自动退出的方法

    文章目录 在Windows上双击运行Python程序不会自动退出的方法 前言 将python.exe添加到环境变量中 一个Python程序例子 双击运行Python程序报错 双击运行Windows C ...

  9. python可以在多种平台运行、体现了_在Windows平台上编写的Python程序无法在Unix平台运行。...

    问题:在Windows平台上编写的Python程序无法在Unix平台运行. 更多相关问题 某船公司2003年2月,建造了两艘航行于武汉-南京的2000吨油船,双壳结构形式,至今使用良好,为公司创 肾病 ...

  10. 利用photoshop生成acv文件

    在研究滤镜的时候,发现有一些滤镜资源是acv格式的,百度了解后,acv文件是ps保存曲线效果的. 知道这个,我们就知道acv格式的文件就是为了给图片做曲线效果处理的,那么怎么生成acv文件呢? 下面就 ...

最新文章

  1. R创建分类变量(categorical variable)
  2. 中小型网络的域环境搭建--第五季(搭建FTP服务器)
  3. 章鱼有9个大脑能编辑基因,智商高到无法理解,为何没发展出文明
  4. java properties读取 封装_java properties 文件读取踩坑记
  5. 使用AndroidStudio编译NDK的方法及错误解决方案
  6. scala typetag java,scala – 从类型中获取TypeTag?
  7. 动态规划1--最长公共子序列
  8. python生成器杨辉三角_python 生成器生成杨辉三角的方法(必看)
  9. UDP(发短信:简单模拟)
  10. 安装centos7失败认不到硬盘_CentOS7 用U盘安装卡住无法进入安装界面解决方案
  11. [c++基础] const char and static const char
  12. 左手自研,右手开源,技术解读华为云如何领跑容器市场
  13. 百度课程——基于深度学习的自然语言处理
  14. Android 自动接听来电
  15. (大概是最全的解决方法)使用bandicam录制视频导入pr后音画不同步问题
  16. 今天买了正版的beyondcompare 4.0
  17. Red Hat Enterprise Linux9 + Zabbix 6.2.3 + Grafana 9.2.0
  18. 你管这叫操作系统源码(十五)
  19. 低版本MAC如何升级系统
  20. Matplotlib进阶教程:布局讲解

热门文章

  1. 项目接力:售前、售中、售后
  2. Windows系统一台主机供多人同时使用的讨论与软件
  3. Sublime Text 2 代码编辑器使用技巧
  4. composer 安装laravel
  5. MATLAB图像分割系统GUI设计
  6. Java+SpringBoot+vue+elementui垃圾分类网站系统mysql源码介绍
  7. plsql使用存储过程添加数据
  8. 初中信息技术考试:Python试题及答案
  9. NanoHttpd 单文件
  10. 【老生谈算法】matlab实现信息光学夫琅禾费衍射源码——夫琅禾费衍射