银河麒麟下安装ffmpeg

网上的资料比较少,本人也是不断摸索,现在将安装过程中出现的问题,以及解决方法依次分享出来,供大家参考。
安装ffmpeg之前需要进行准备,安装一些解码工具
准备工作
在/usr/local/下新建一个ffmpeg文件夹

mkdir /usr/local/ffmpeg

第一步,安装nasm.
nasm下载链接如下:
https://www.linuxfromscratch.org/blfs/view/8.2/general/mercurial.html
进入网址后,界面如下
在这里插入图片描述
选择红框选中区域,下载nasm
下载完成后进入到下载目录执行下面的操作

    tar -xvzf nasm-2.13.03.tar.gz
    cd nasm-2.13.03/
    ./configure
    make
    make install

执行上述过程中make时可能会报错,错误结果如下

./include/nasmlib.h:194:1: error: ‘pure’ attribute on function returning ‘void[-Werror=attributes] 194 | void pure_func seg_init(void);

这是由于gcc版本过新,解决方案如下

vim ./include/nasmlib.h

在vim编译器中找到大概193行位置,对下面一行代码进行注释

void pure_func seg_init(void);

然后重新make,再执行make install,完美解决。输入下面的命令,查看nasm版本号,打印出来表示安装成功。

nasm --verison

在这里插入图片描述
第二步安装yasm
官网下载链接http://www.tortall.net/projects/yasm/releases/
在这里插入图片描述
如上图红框所示,下载相应的版本
将下载后的文件解压到/usr/local/ffmpeg文件夹内,主要操作如下

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

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

yasm --version

显示下面结果表示安装成功

在这里插入图片描述

第三步 安装x264
官网链接如下
https://www.videolan.org/developers/x264.html
进去之后界面如下
在这里插入图片描述点击红框选中位置进行下载,同样,下载后放入/usr/local/ffmpeg文件夹内进行解压等后续操作

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

安装完成后同样可以使用下面命令进行测试

x264 --version

出现下面界面表示安装成功
在这里插入图片描述

第四步 安装ffmpeg
首先去官网下载ffmpeg,链接如下
http://ffmpeg.org/download.html#build-linux
进去之后按照下面提示操作
在这里插入图片描述
当然,如果想下载.tar.bz2类型的,直接点击右边的位置即可
下载之后放入/usr/local/ffmpeg文件夹内
然后依次执行下面步骤

tar -xjvf ffmpeg-4.4.tar.bz2
cd ffmpeg-4.4
./configure --enable-shared --prefix=/monchickey/ffmpeg
make -j8
make install -j8

上面执行完成后,安装基本算是成功了,至于为什么没全成功,后面还需要再进一步配置方可使用。
配置过程如下

配置1

cd /monchickey/ffmpeg/ 

查看该目录下是否包含下图的几个文件目录
在这里插入图片描述
这几个目录,在此稍微介绍一下
bin目录中包含了ffmpeg的二进制文件
include目中包含了编程需要引入的头文件目录
lib是编译好的库文件目录
share是文档目录

配置2

cd bin
./ffmpeg -version

一般情况下会看到下图的结果

在这里插入图片描述说明至此,ffmpeg真的安装成功了
如果,出现特殊情况,那就是报错了,不要慌,继续执行下面

配置3

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

可能是一个新文件。如果不是就在文档末尾添加下面一句话

/monchickey/ffmpeg/lib

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

ldconfig

最后,再执行配置2的语句,此时应该出现配置2 的截图了,说明至此安装完毕。
当然,到此,我们还没有对安装进行实际测试,不确定安装后是否能达到预期的效果,为此,本文专门使用了一个mp4视频进行了测试,将mp4转换为avi格式,测试步骤和结果如下,此处截图时转换后的格式为mp4,后面命令中进行了修改
在这里插入图片描述首先,查看一下原视频,格式为mp4,大小为17507051,位置在桌面,名称叫test.mp4,为了方便测试,可以将该文件拷贝到/monchickey/ffmpeg/bin目录下。
然后在/monchickey/ffmpeg/bin目录下执行下面的命令

./ffmpeg -i test.mp4 -f psp -r 29.97 -b 768k -ar 24000 -ab 64k -s 320*240 destination.avi

此时你会看到下面的运行界面
在这里插入图片描述

紧接着是这样的画面
在这里插入图片描述恭喜,终于通过实际的测试了,等待程序执行完成之后,会发现bin目录下多了一个destination.avi文件
在这里插入图片描述在这里插入图片描述
可以看到后,格式转换后,文件的大小发生了变化,打开视频后发现与原视频效果差不多。
最后放上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

需要的自取,上面使用的参数命令可以对照命令参数详情自己理解。

### 解析 Import Error 的常见原因 当遇到 `ImportError: cannot import name 'Generic'` 错误时,通常意味着尝试从模块中导入的对象不存在或无法访问。此问题可能由多种因素引起: - 版本不兼容:不同库之间的版本冲突可能导致此类错误。 - 安装缺失:目标库未正确安装或路径配置有误。 - 导入语句不当:可能存在循环依赖或其他语法层面的问题。 ### 针对 Generic 类型的具体解决方案 对于特定于 `Generic` 的情况,考虑到 Python 中 `Generic` 是 typing 模块的一部分,在处理该类别的 ImportError 时可采取如下措施[^1]: #### 方法一:确认typing模块可用性 确保环境中已安装标准库中的 typing 模块,并且其版本支持所使用的特性。可以通过以下命令验证: ```bash python -c "from typing import Generic; print(Generic)" ``` 如果上述命令执行失败,则可能是由于 Python 或者相关扩展包的版本过低造成的。此时应考虑升级至更高版本的解释器以及对应的开发工具链。 #### 方法二:调整导入方式 有时直接通过顶层命名空间来获取所需组件会更稳定可靠。修改代码以采用这种做法可能会解决问题: ```python from collections.abc import Iterable # 如果是迭代器相关接口 from typing import TypeVar, Protocol # 对于协议和泛型定义 T = TypeVar('T') class MyContainer(Protocol[T]): ... ``` 注意这里并没有显式提到 `Generic` ,而是利用了更为基础的数据结构抽象基类或是其他替代方案实现相同功能[^2]。 #### 方法三:排查环境变量设置 检查系统的 PYTHONPATH 和虚拟环境配置是否正常工作。任何异常都可能导致某些第三方软件包找不到必要的资源文件而引发类似的错误提示。建议清理并重建项目专属的工作区以便排除干扰项的影响。 #### 示例修正后的代码片段 假设原始代码试图这样引入 `Generic` : ```python from some_module import Generic # 可能导致 ImportError ``` 改为遵循官方文档推荐的方式后变为: ```python from typing import Generic # 正确的做法 ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小峰呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值