1.FFMPEG编译裁剪移植
2.图吧工具箱2024.07正式版下载
3.开启CUDA加速你的加加速MySQL查询cudamysql
4.如何解决战地1下载速度慢的问题? 雷神加速器带你了解
FFMPEG编译裁剪移植
1.ffmpeg文件结构说明
1.1 ffmpeg模块说明
libavformat
用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能;音视频的速器格式解析协议,为 libavcodec 分析码流提供独立的源码源码音频或视频码流源。
libavcodec
用于各种类型声音/图像编解码。加加速该库是速器音视频编解码核心,实现了市面上可见的源码源码借贷app会员源码绝大部分解码器的功能。
libavdevice
硬件采集、加加速加速、速器显示。源码源码操作计算机中常用的加加速音视频捕获或输出设备。
libavfilter
音视频滤波器的速器开发,如宽高比、源码源码裁剪、加加速格式化、速器非格式化伸缩。源码源码
libavutil
包含一些公共的工具函数的使用库,包括算数运算、字符操作。
libavresample
音视频封转编解码格式预设等。
libswscale
原始视频格式转换,用于视频场景比例缩放、色彩映射转换;图像颜色空间或格式转换,如 rgb、rgb 等与 yuv 等之间转换。
libswresample
原始音频格式转码。
libpostproc
同步、时间计算的简单算法,用于后期效果处理;音视频应用的后处理,如图像的vb源码遍历围棋去块效应
在编译ffmpeg源码之前,我们可以通过配置编译参数选择是否编译生成如上库。一般而言,要实现最基本的音视频编解码功能,libavformat,libavcodec,libavutil这三个库是不可缺少的。我们通过使能或失能ffmpeg支持的组件,如编解码器、分流器、合流器、解析器、协议类型等,来裁剪库文件的大小。
1.2名词解释
encoder // 编码器
decoder // 解码器
hwaccel // 硬件加速器
muxer // 合流器
demuxer // 分流器
parser // 解析器
bsf // 比特过滤器
protocol // 协议
indev // 输入设备
outdev // 输出设备
filter // 过滤器
相关学习资料推荐,点击下方链接免费报名,先码住不迷路~
音视频免费学习地址:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
免费分享音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击 加群免费领取~
2.编译
ffmpeg 编译帮助
主要包含一下选项
Help options // 帮助选项,可以查看全部支持的编解码,硬件加速器,解析器、输入输出设备等参数的列表,一般做裁剪时需要查询;
Standard options // 标准选项,主要是目录路径相关的设置,常用的fsl指标公式源码为--prefix=PREFIX 设置安装路径;
Licensing options // license 相关选项 GPL使能设置相关;
Configuration options // 配置选项,常用的--disable-static关闭静态库 默认是开启静态库编译的--enable-shared 使能动态库编译,编译出动态库--enable-small优化大小而不是注重运行速度;
Program options // 编译出工具文件,一般的bin文件,常用的ffmpeg ffprobe 和ffplay三个工具的bin文件编译;
Documentation options // 文档选项,是否构建文档页面,个人猜测是工具的帮助文件是否编译进去,里面支持html manpage txt等格式文件;
Component options // 组件选项,常用使能或者关闭某些模块的编译,libavformat,libavcodec,libavutil这三个库一般是不可或缺的,还有其他的组件按自己需要使能;
Individual component options // 独立的组件选项,更为具体的组件编译选项,如果需要剪裁一般情况先使用--disable-everything 关闭全部的组件,然后再单独开启需要的组件;
External library support // 扩展库支持,允许FFmpeg链接到相应的外部库;
Toolchain options // 工具链选项,交叉编译常用,比较常用的--arch=ARCH 指定系统架构 --cpu=CPU指定cpu类型 --cross-prefix交叉编译工具链前缀 --enable-cross-compile 使能交叉编译--target-os=OS指定操作系统;
Advanced options (experts only) // 高级选项,一般较少使用,不懂的请慎用,以免引进bug;
Optimization options (experts only): --disable-asm关闭所有的优化选项
Developer options (useful when working on FFmpeg itself): --disable-debug 关闭调试符号信息,减小库大小;
2.1全编配置
采用默认配置 交叉编译,在当前目录下output文件夹生成对应的文件
编译后的文件夹下有bin include lib share 目录bin存放交叉编译后的ffmpeg等工具bin文件,include目录存放头文件,移植需要 lib存放动态和静态库,将lib里面的文件拷贝到板端或者静态库使用即可;
编译后未经裁剪的ffmpeg库实在太大,十几M的大小,需要裁剪;
2.2裁剪库
ffmpeg 库过大,app问答模块源码很多功能其实没必要使用的, 裁剪为仅支持mp4 和 avi两种格式的视频,avi:视频采用h编码,音频采用pcm_alaw mp4:视频h,音频aac格式;这个指令其实还可以进一步裁剪,不想麻烦,够用就行,不再裁剪@_@;
裁剪后的文件大小最大也只剩1.1M,大小减少倍;
3.ffmpeg移植问题
3.1时间冲突问题
libavutils/time.h文件名字和linux系统的time.h的名字冲突,在编译的时候会出现time.h文件是有两个,无法区分是哪个time.h,因此会出现报错,如果在ffmepg里将time.h文件重命名可以解决这个问题,但这样太麻烦而且容易出错,采用另外一种方式,将makefile的搜索路径更改为只搜索到include文件夹,然后在include文件夹下放置相关的头文件,而在调用的c文件上路径改为
这样就躲开了搜索文件名字一样的问题,其本质是将ffmpeg的time.h重新命名为libavutils/time.h
3.2函数符号导出问题
由于移植需要单独导出库内部的局部函数,如mov_write_packet mov_write_header mov_write_trailer等函数,将movenc.c对应函数的static去掉,同时在libavformat.h文件声明函数,但是生成的库会发现没有找到对应的函数符号
avi相关的函数也做同样的处理,但是avi有这个函数符号,这个问题只能反推编译过程查找哪里将函数符号屏蔽掉了采用指令
发现在生成库的时候会调用一个脚本文件,这个脚本文件最后在config.mak里面指定了
--version-script这个选项仅仅导出要使用的符号表,这个文件对应libavformat里面的就是libavformat.vlibavformat.verlibavformat.version,后两个文件都是根据第一个文件产生的,查看libavformat.v文件
显然,在这里屏蔽掉了非av开头的全部函数,所有mov开头的函数无法被外部调用,因此更改这个文件,前端编程源码大全将mov开头的函数也导出
重新编译发现可以调用mov开头的函数了。
不足之处,敬请指出,谢谢^_^
4.参考资料
CSDN 博客 SigmaStarDocs 《ffmpeg基础库编程开发》
原文 FFMPEG编译裁剪移植_ffmpeg编译到移远模块_Kingkim的博客-CSDN博客
图吧工具箱.正式版下载
图吧工具箱.正式版已发布,集成多项最新工具,包括DISM++、Ventoy、Rufus、DDU、Geek、Everything等,新加入迅游加速器供用户白嫖小时会员。皮肤界面进行升级,除了经典蓝皮肤外,其他纯色渐变皮肤均重新调色。预计每月更新,furmark显存温度压力测试将回归下个版本。最新更新日志详情可见tbtool.cn官网。
提供多种下载方式,包括盘、天翼云盘、腾讯微云、百度网盘、城通盘、迅雷盘和夸克盘,提取码分别对应hy5p、、访问码、以及pan.com/s/QdiA-Kt4mh的链接。无需繁琐安装,自解压格式的压缩包方便用户直接解压使用。
图吧工具箱,专为硬件极客、DIY爱好者、各路大神及小白设计的开源、免费、绿色、纯净的硬件检测工具合集。汇集大量常见硬件检测、评分工具,提供一键下载,操作简单。无捆绑安装行为,不写入注册表,不进行敏感文件操作,确保用户隐私安全。支持自解压格式,无需安装,解压即用,方便快捷。提供源码下载,硬件检测SDK,支持主流编程语言调用,无需授权,免费使用无任何限制。自年起,持续稳定更新,旨在提供方便用户使用的硬件检测工具箱。
开启CUDA加速你的MySQL查询cudamysql
开启CUDA加速你的MySQL查询
近年来,科技的发展让计算机性能的提升成为了必然趋势。在数据处理的领域,随着数据量的不断增加,数据库查询所需的计算能力也越来越高。早在年,Nvidia就推出了CUDA(Compute Unified Device Architecture)加速库,为计算机GPU以及其它协处理器带来了大量的优势,其在加速计算领域中已经得到广泛的应用。MySQL数据库虽然已经在处理大规模数据方面取得了很多进展,但是它的查询性能却仍然存在瓶颈。此时,CUDA的出现就给了MySQL一种新的加速方案,可以通过开启CUDA加速来提升MySQL查询的性能。
具体来说,CUDA中的核函数可以在GPU上运行,而不是在CPU上运行。如此可以充分利用GPU的并行能力,更加高效地处理大数据量的计算。为了使用CUDA加速MySQL查询,我们需要先安装CUDA库以及CUDA驱动程序,然后重新编译MySQL以支持CUDA加速。以下是一些具体步骤:
1. 安装CUDA库和CUDA驱动程序
可以先到Nvidia官网(/cuda-downloads)下载适合自己操作系统的CUDA库和CUDA驱动程序。
2. 重新编译MySQL
在安装完成之后,需要重新编译MySQL,以支持CUDA加速。在此之前,我们需要保证已经正确安装了MySQL源代码,可以从MySQL官网(/downloads/mysql/)下载最新的MySQL源代码。
下载完成后,我们需要先停止MySQL服务,然后解压MySQL源代码,并进入解压后的目录。
接下来,我们需要编辑MySQL源代码中的configure文件,以支持CUDA加速。具体来说,我们需要添加如下代码:
ac_arg_enable([cuda], [whether to enable CUDA acceleration], [no])
完成后,运行如下命令以重新编译MySQL:
./configure –enable-cuda && make && make install
完成后,我们可以启动MySQL服务,并检查是否安装成功。可以通过如下命令查看MySQL是否支持CUDA加速:
SELECT @@have_cuda;
如果数据库返回1,则说明已经成功开启CUDA加速功能。
3. 加速MySQL查询
现在,我们已经可以使用CUDA加速来执行MySQL查询了。在执行查询前,需要先将要查询的数据上传到GPU中,然后再执行加速的查询。以下是一个简单的示例代码:
// 加速器初始化
int cuda_status = cudaInit();
if (cuda_status != 0) {
return cuda_status;
}
// 将数据上传到GPU
int host_data[] = { 1, 2, 3, 4, 5 };
int* device_data = cudaMalloc(sizeof(host_data));
cudaMemcpy(device_data, host_data, sizeof(host_data), cudaMemcpyHostToDevice);
// 执行查询操作
int result;
cudaSelectQuery(device_data, sizeof(host_data) / sizeof(int), &result);
// 输出查询结果
printf(“Result is %d”, result);
通过以上操作,我们已经可以顺利地开启CUDA加速功能,让MySQL查询得到更快、更高效的计算能力。通过对MySQL的CUDA加速优化,对于大型数据处理需求的用户来说,可以极大地提高MySQL查询性能和数据处理能力。
如何解决战地1下载速度慢的问题? 雷神加速器带你了解
如今不少游戏玩家在玩游戏的时候都可能会遇到一个问题,就是下载这个游戏的速度比较慢。像是最近很流行的战地1游戏,不少游戏爱好者都说下载慢。下面我们来看看战地1下载速度慢的原因和解决方法。
下载速速慢的原因
1.网络延迟
现在,随着游戏行业的快速发展,不少外服游戏也在不断进入中国,不少游戏发行商对中国市场更加看好。但是假若国内玩家玩外服战地1,会有网络延迟,因为服务器不在一个国家,会造成网络延迟,下载速度慢。所以市面上有不少关于外服游戏加速的游戏加速器。
解决办法
1.在安装origin的文件夹中找到名为EAcore.ini的文件,并将其拖到桌面或其他地方
2.双击打开,应该是空白的,然后复制粘贴下面的代码到里面
[连接]
环境名称=生产
[功能]
CdnOverride=akamai
3.保存并放回(假若没有放回,下次打开时可以自动找到更改过的ini文件)
4.开放源码,享受下载速度
解决办法2
假若下载速度慢或者下载不了,尽量换主机。主机文件位于c : \ \ Windows \ \ System \ \ Drivers \ \ etc文件夹中。双击选择用记事本打开。
然后复制这段文字,粘贴到...origin-a.akamaihd.net的另一行,保存,然后再次尝试下载。
假若速度还没有恢复,可以分别尝试下面的每一行,当然不要一条一条的加,每一行单独加保存试试速度,找到最快的保持。
...origin-a.akamaihd.net
...origin-a.akamaihd.net
...origin-a.akamaihd.net
...4origin-a.akamaihd.net
...origin-a.akamaihd.net
...origin-a.akamaihd.net
...origin-a.akamaihd.net
..5.origin-a.akamaihd.net
...origin-a.akamaihd.net
...origin-a.akamaihd.net
每次换主机,按Ctrl S保存,点击原点暂停,然后点击继续下载。
以上是战地1下载速度慢的解决方案及详细原因。假若下载速度慢,主要是网络的原因,但也有电脑配置的关系。假若按照上面的方法解决问题,基本就可以解决了。雷神加速器,使用金融级内网传输专线,网络游戏加速效果显著,小巧简洁加速速度快免费试用,玩家用户/网吧专用版本使用按分钟计费,不用可随时暂停时间,买一次相当于长久使用,雷神加速器好用且贴心,玩家/网吧必选!