麒麟银河操作系统V10部署ffmpeg

麒麟银河操作系统V10部署ffmpeg

部署ffmpeg用来处理视频的各种操作

想使用ffmpeg,要先安装nasm,yasm,x264之后,否则会报错

nkvers 查看麒麟操作系统版本

cat /proc/version #查看linux版本信息

uname -a #查看linux版本和内核

安装nasm

step1:window系统中打开链接NASM-2.13.03 (linuxfromscratch.org) 点击下图中红框下载

image-20240227100611914

step2 将下载的tar.xz压缩包导入麒麟操作系统的 /usr/local/ffmpeg 目录下(没有这个目录就先创建这个目录)

image-20240227100835927

step3 解压tar.xz压缩包

tar -xf nasm-2.13.03.tar.xz

step4 进入到解压后的路径中

`cd nasm-2.13.03`	   	![1708999907116](https://img-blog.csdnimg.cn/img_convert/319d46f2b19a4b6ad1dd6d47762a74ca.png)		

​ 执行命令

./configure

image-20240227102019144

​ 注意:

  • 如果你的gcc版本过低或者过低(麒麟系统是是有这个问题,所以需要解决),解决方案如下:
vim ./include/nasmlib.h
  • 在vim编译器中找到大概193行位置,对下面一行代码进行注释(加 “//” 就好了)
void pure_func seg_init(void);

​ 再依次执行命令

make

image-20240227102038441

make install

image-20240227101929396

最后输入下面的命令,查看nasm版本号,打印出来表示安装成功。

nasm --verison

image-20240227101843257

安装yasm

官网下载链接http://www.tortall.net/projects/yasm/releases/

step1 点击下载,并放入麒麟OS的 /usr/loacl/ffmpeg 路径下

image-20240227102205854

image-20240227102402011

step2 将下载后的文件解压到/usr/local/ffmpeg文件夹内,主要操作如下

cd /usr/local/ffmpeg
tar -xvzf yasm-1.2.0.tar.gz

image-20240227102829456

step3 执行命令

cd yasm-1.2.0/
./configure
make
make install

image-20240227102945760

image-20240227103224995

image-20240227103313856

step4 最后安装成功后可以使用如下命令查看

yasm --version

image-20240227103437604

安装x264

官网链接:https://www.videolan.org/developers/x264.html

step1 进行官网,直接点击下载,将下载的tar.bz2压缩包放入麒麟操作系统 /usr/local/ffmpeg/ 目录下

image-20240227103609059

image-20240227103753533

step2 一行行执行下述命令

cd /usr/local/ffmpeg
tar -xvf x264-master.tar.bz2
cd x264-master
./configure --enable-shared
make
make install

image-20240227104013261

​ 解压成功

image-20240227104043281

image-20240227104218144

image-20240227104702195

image-20240227104759994

step3 上述安装操作完成后,使用下面命令进行测试

x264 --version

image-20240227104905419

安装ffmpeg

官网:Download FFmpeg

step1 进入官网,点击下图, 并选择适合自己的版本

image-20240227095609035

image-20240227095650486

选择困难症的话,可用点击链接 https://www.ffmpeg.org/releases/ffmpeg-5.1.2.tar.gz 下载

step2 将在window中下载的tar.gz压缩包 导入到麒麟OS系统中/usr/local/ffmpeg/ 目录下

image-20240227100015375

step3 在麒麟OS终端,依次执行下面步骤

cd /usr/local/ffmpeg
tar -zxvf ffmpeg-5.1.2.tar.gz  ##要是下载了bz2包 则使用该命令tar -xjvf ffmpeg-5.1.2.tar.bz2
cd ffmpeg-5.1.2
./configure --enable-shared --prefix=/monchickey/ffmpeg
make -j8 #允许8个任务同时进行 这个可根据自己需求设置
make install -j8 

image-20240227105753217

image-20240227110536403

image-20240227110628128

step4 修改配置文件

cd /monchickey/ffmpeg/ 

查看该目录下是否包含下图的几个文件目录。bin目录中包含了ffmpeg的二进制文件,include目中包含了编程需要引入的头文件目录,lib是编译好的库文件目录,share是文档目录

image-20240227110829484

cd /monchickey/ffmpeg/bin
./ffmpeg -version

一般情况下会看到下图的结果,说明至此,ffmpeg真的安装成功了

image-20240227111802163

如果,出现特殊情况,那就是报错了,不要慌,继续执行下面

vim /etc/ld.so.conf.d/ffmpeg.conf

添加下面一句话

/monchickey/ffmpeg/lib

保存退出,使用ldconfig使得配置生效

ldconfig

最后,再执行的./ffmpeg -version语句,此时会出现版本信息,说明安装完毕。

./ffmpeg -version

image-20240227111802163

step5 添加环境变量

打开profile文件

vim /etc/profile

在末尾加上两行

export HBASE_HOME=/monchickey/ffmpeg
export PATH=$PATH:$HBASE_HOME/bin

配置环境变量之前,一定要在/monchickey/ffmpeg/bin 下才能使用ffmpeg命令

image-20240227134842119

配置环境变量以后,在终端任意位置 均可以使用ffmpeg命令

image-20240227135025953

测试

在麒麟OS终端任意位置 执行下面命令,将mov_bbb.mp4转成avi格式,执行命令后转换成功。表示ffmpeg命令在麒麟os中有效

ffmpeg -i /usr/local/ffmpeg/mov_bbb.mp4 /usr/local/ffmpeg/mov_bbb.avi

image-20240227135322162

成功生成对应的avi视频文件

image-20240227135358249

ffmpeg的命令参数

#ffmpeg常用参数的介绍#-i 指定要转换视频的源文件
#-s 视频转换后视频的分辨率
#-vcodec 视频转换时使用的编解码器
#-r 视频转换换的桢率(默认25桢每秒)
#-b 视频转换换的bit率
#-ab 音频转换后的bit率(默认64k)
#-acodec 制度音频使用的编码器
#-ac 制定转换后音频的声道
#-ar 音频转换后的采样率
./ffmpeg -i source.mp4 -f psp -r 29.97 -b 768k -ar 24000 -ab 64k -s 320*240 destination.mp4

参考博客

注意以下博客中均有些小错误这些错误在本文中均已改正,列出的链接仅供参考。

银河麒麟下安装ffmpeg_银河麒麟h246解码软件-CSDN博客

银河麒麟下安装ffmpeg遇到的问题_银河麒麟安装ffmpeg后一直无法连接-CSDN博客

liunx源码部署 ffmpeg 踩坑指南 x264、yasm、nasm、java集成ffmpeg_linux 安装nasm/yasm失败-CSDN博客

补充:

安装nasm:在编译安装libx264时,报了缺少nasm,需要先安装nasm。

安装 x264:在使用–enable-libx264时需要。mp4格式的视频就有3种编码: mpg4(xdiv),mpg4(xvid),avc(h264)
这三种格式虽然在播放器里可以正常播放,但是mpg(xdiv),mpg4(xvid)这两种格式嵌到html5页面里的时候就会出现只有声音不显示图像的情况,转换成H264编码就可以在网页正常播放了。为了兼容浏览器,建议安装x264依赖

安装yasm:FFmpeg 为了提高编译速度,使用了汇编指令,如MMX和SSE等。如果系统中没有yasm指令的话,编译FFmpeg时会报错

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/706639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在TMP中计算书名号《》高度的问题

1)在TMP中计算书名号《》高度的问题 2)FMOD设置中关于Virtual Channel Count&Real Channel Count的参数疑问 3)Unity 2021.3.18f1 ParticleSystemTrailGeometryJob粒子拖尾系统崩溃 4)XLua打包Lua文件粒度问题 这是第375篇UWA…

数据库管理-第156期 Oracle Vector DB AI-07(20240227)

数据库管理156期 2024-02-27 数据库管理-第156期 Oracle Vector DB & AI-07(20240227)1 Vector相关DDL操作可以在现有的表上新增vector数据类型的字段:可以删除包含vector数据类型的列:可以使用CTAS的方式,从其他有…

Unity Shader - sahder变体剔除

文章目录 吐槽优化方案 - 目前最靠谱的方式shadercsharp 吐槽 我之所以单独写这边文章,是因为之前写的一篇: Unity Shader - Built-in管线下优化变体,编辑后,无法保存,一直提示:操作超时。 等了差不多 3…

vue使用Swiper插件实现卡片化轮播图

1.安装swiper 官网&#xff1a;Swiper中文网-轮播图幻灯片js插件,H5页面前端开发 注意&#xff1a; 下载插件【要5.x】&#xff0c;不然会出现各种BUG。 npm i swiper5.x vue-awesome-swiper4.1.1 -S 2.HTML代码 <div class"examples"><div class"s…

Redis高性能策略以及各种缓存异常问题和解决方案

目录 Day 2.25 异步子线程机制 CPU架构类型&#xff0c;以及可能产生的影响 Day 2.26 redis 缓存与后端 MySQL 数据不一致问题 redis 缓存异常问题 &#xff08;缓存雪崩&#xff0c;缓存击穿&#xff0c;缓存穿透&#xff09;及 解决措施 布隆过滤器实现原理 Day 2.25 …

【C语言】linux内核netdev_start_xmit函数

一、中文注释 static inline netdev_tx_t netdev_start_xmit(struct sk_buff *skb, struct net_device *dev, struct netdev_queue *txq, bool more) {// 获取网络设备操作集合const struct net_device_ops *ops dev->netdev_ops;int rc;// 调用实际发送数据包的函数&…

ElasticSearch之找到乔丹的空中大灌篮电影

写在前面 本文看一个搜索的实际例子&#xff0c;找到篮球之神乔丹的电影Space Jam&#xff0c;即空中大灌篮。 正式开始之前先来看下要查询的目标文档&#xff0c;以及查询的text&#xff1a; 要查询的目标文档 {..."title": "Space Jam",..."ove…

什么是智能合约

前言&#xff1a;在介绍智能合约的前提下&#xff0c;需要先介绍一下区块链 一.什么是区块链 区块链实质上是一个去中心化、分布式的可进行交易的数据库或账本&#xff0c;具有下列典型特征&#xff1a; 去中心化&#xff1a;简单来说&#xff0c;在网络上一个或多个服务器瘫…

Java设计模式:单例模式之六种实现方式详解(二)

在Java中&#xff0c;单例模式是一种常见的设计模式&#xff0c;用于确保一个类只有一个实例&#xff0c;并提供一个全局访问点来获取该实例。单例模式在多种场景下都很有用&#xff0c;比如配置文件的读取、数据库连接池、线程池等。本文将详细介绍Java中实现单例模式的六种方…

组合模式(Composite Pattern)

定义 组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你将对象组合成树形结构&#xff0c;并且能像使用单独对象一样使用组合对象。组合模式让客户端代码对单个对象和复合对象的使用具有一致性。 在组合模式中&#xff0c;我们定义…

Spring Boo项目中方法参数对象中字段上存在的自定义注解如何进行拦截解析

一、前言 在Spring Boot项目开发过程中&#xff0c;我们经常会使用到自定义注解的方式进行业务逻辑开发&#xff0c;此时注解我们一般是放在方法或者类上面&#xff0c;通过AOP切面拦截的方式进行自定义业务逻辑填充。但是如果自定义注解放在类的字段上&#xff0c;此时应该如…

Clickhouse填坑记4:Too many parts问题分析

Clickhouse在进行大数据量同步时,感觉很爽,插入速度非常快,但是,在使用过程中却出现了几次“Too many parts”异常报错,搞得很痛苦,这里记录一下解决过程。 我这边采用的是Flink程序,实时将数据写入ClickHouse,在执行一段时间后,会提示“Too many parts”异常,如下异…

云端技术驾驭DAY13——Pod污点、容忍策略、Pod优先级与抢占、容器安全

往期回顾&#xff1a; 云端技术驾驭DAY01——云计算底层技术奥秘、云服务器磁盘技术、虚拟化管理、公有云概述 云端技术驾驭DAY02——华为云管理、云主机管理、跳板机配置、制作私有镜像模板 云端技术驾驭DAY03——云主机网站部署、web集群部署、Elasticsearch安装 云端技术驾驭…

XXE 漏洞简单研究

近期在做个基础的 web 常见漏洞的 ppt&#xff0c;主要参考 OWASP TOP 10 2017RC2&#xff0c;此版本中增加了 XXE 攻击&#xff0c;所以自己简单的研究下 XXE 攻击。XXE&#xff08;XML External Entity&#xff09;XML 外部实体&#xff0c;当前端和后端通信数据采用 xml&…

element el-date-picker 日期组件置灰指定日期范围、禁止日期范围日期选择

JS如何将当前日期或指定日期转时间戳_javascript技巧_脚本之家 小于指定日期前的日期置灰 比如这里 指定日期是 2024-02-20 10:48:15 disabledDate(time) time是一个函数提供的时间用于比较 他是一个时间戳↓ 理解为我们想要置灰的时间 time.getTime() < timeStamps- 1 *…

《Large Language Models for Generative Information Extraction: A Survey》阅读笔录

论文地址&#xff1a;Large Language Models for Generative Information Extraction: A Survey 前言 映像中&#xff0c;比较早地使用“大模型“”进行信息抽取的一篇论文是2022年发表的《Unified Structure Generation for Universal Information Extraction》&#xff0c;也…

IDEA开发环境热部署

开发环境热部署 在实际的项目开发调试过程中会频繁地修改后台类文件&#xff0c;导致需要重新编译重新启动&#xff0c;整个过程非常麻烦&#xff0c;影响开发效率。Spring Boot提供了spring-boot-devtools组件&#xff0c;使得无须手动重启SpringBoot应用即可重新编译、启动项…

cesium相机视角跳转和缩放至entity方法汇总

下面汇总的相机视角跳转方法有很多种&#xff0c;都是根据某一个经纬度高程坐标[x,y,z]&#xff0c;Entity实体或者矩形四至范围[west , south , east , north]作为视图跳转到目标范围的中心&#xff0c;然后在该位置上设置相机相对的偏移量&#xff0c;这个偏移量主要是设置相…

36.云原生之SpringCloud+k8s实践

云原生专栏大纲 文章目录 SpringCloudk8s介绍spring-cloud-kubernetes服务发现配置管理负载均衡选主 spring-cloud-bookinfo案例构建项目环境配置namespace部署与验证productpagegatewaybookinfo-admindetailsratingsreviewsreviews-v1reviews-v2 总结 SpringCloudk8s介绍 ht…

vue-router4 (六) 路由嵌套

应用场景&#xff1a; ①比如京东页面的首页、购物车、我的按钮&#xff0c;可以点击切换到对应的页面&#xff1b; ② 比如 Ant Design左侧这些按钮点击就会切到对应的页面&#xff0c;此时可以把左侧按钮放在父路由中&#xff0c;右侧的子路由 1.路由配置&#xff0c;子路由…