aqi00_个人页

个人头像照片 aqi00
个人头像照片
25
0
0

个人介绍

著有技术书籍《FFmpeg开发实战:从零基础到短视频上线》、《Android Studio开发实战:从零基础到App上线》、《好好学Java:从零基础到项目实战》、《Kotlin从零到精通Android开发》等等。

擅长的技术

  • C语言
  • C++
  • Java
  • Kotlin
  • Android开发
  • FFmpeg
  • 音视频
获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息

2024年05月

  • 05.19 12:39:11
    发表了文章 2024-05-19 12:39:11

    FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器

    AVS3,中国制定的第三代音视频标准,是首个针对8K和5G的视频编码标准,相比AVS2和HEVC性能提升约30%。uavs3d是AVS3的解码器,支持8K/60P实时解码,且在各平台有优秀表现。要为FFmpeg集成AVS3解码器libuavs3d,需从GitHub下载最新源码,解压后配置、编译和安装。之后,重新配置FFmpeg,启用libuavs3d并编译安装,通过`ffmpeg -version`确认成功集成。
  • 05.18 10:45:38
    发表了文章 2024-05-18 10:45:38

    FFmpeg开发笔记(十九)FFmpeg开启两个线程分别解码音视频

    《FFmpeg开发实战》第10章示例playsync.c在处理音频流和视频流交错的文件时能实现同步播放,但对于分开存储的格式,会出现先播放全部声音再快速播放视频的问题。为解决此问题,需改造程序,增加音频处理线程和队列,以及相关锁,先将音视频帧读入缓存,再按时间戳播放。改造包括声明新变量、初始化线程和锁、修改数据包处理方式等。代码修改后在playsync2.c中,编译运行成功,控制台显示日志,SDL窗口播放视频并同步音频,证明改造有效。
  • 05.12 12:14:50
    发表了文章 2024-05-12 12:14:50

    FFmpeg开发笔记(十八)FFmpeg兼容各种音频格式的播放

    《FFmpeg开发实战》一书中,第10章示例程序playaudio.c原本仅支持mp3和aac音频播放。为支持ogg、amr、wma等非固定帧率音频,需进行三处修改:1)当frame_size为0时,将输出采样数量设为512;2)遍历音频帧时,计算实际采样位数以确定播放数据大小;3)在SDL音频回调函数中,确保每次发送len字节数据。改进后的代码在chapter10/playaudio2.c,可编译运行播放ring.ogg测试,成功则显示日志并播放铃声。
  • 05.11 13:25:18
    发表了文章 2024-05-11 13:25:18

    FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass

    在Windows环境下为FFmpeg集成字幕渲染库libass涉及多个步骤,包括安装freetype、libxml2、gperf、fontconfig、fribidi、harfbuzz和libass。每个库的安装都需要下载源码、配置、编译和安装,并更新PKG_CONFIG_PATH环境变量。最后,重新配置并编译FFmpeg以启用libass及相关依赖。完成上述步骤后,通过`ffmpeg -version`确认libass已成功集成。
  • 05.05 11:55:06
    发表了文章 2024-05-05 11:55:06

    FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库

    该文介绍了如何在Linux服务器上交叉编译Android的FFmpeg库以支持HTTPS视频播放。首先,从GitHub下载openssl源码,解压后通过编译脚本`build_openssl.sh`生成64位静态库。接着,更新环境变量加载openssl,并编辑FFmpeg配置脚本`config_ffmpeg_openssl.sh`启用openssl支持。然后,编译安装FFmpeg。最后,将编译好的库文件导入App工程的相应目录,修改视频链接为HTTPS,App即可播放HTTPS在线视频。
  • 05.04 12:04:05
    发表了文章 2024-05-04 12:04:05

    FFmpeg开发笔记(十五)详解MediaMTX的推拉流

    MediaMTX是开源轻量级流媒体服务器,提供RTSP, RTMP, HLS, WebRTC和SRT服务。启动后,它在不同端口监听。通过FFmpeg的推拉流测试,证明了MediaMTX成功实现HLS流媒体转发,但HLS播放兼容性问题可能因缺少音频流导致。推流地址为rtsp://127.0.0.1:8554/stream,RTMP地址为rtmp://127.0.0.1:1935/stream,HLS播放地址为http://127.0.0.1:8888/stream(Chrome)和http://127.0.0.1:8888/stream/index.m3u8(其他播放器可能不支持)。
  • 05.01 13:38:58
    发表了文章 2024-05-01 13:38:58

    FFmpeg开发笔记(十四)FFmpeg音频重采样的缓存

    FFmpeg在视频流重编码和音频重采样中使用缓存机制。在音频文件格式转换时,特别是对于帧长度不固定的格式如ogg、amr、wma,需处理重采样缓存。通过调用`swr_convert`,传入空输入和0大小来清空缓存。在`swrmp3.c`中,修改帧样本数处理,并在循环结束后添加代码以冲刷缓存。编译并运行程序,将ogg文件重采样为MP3,日志显示操作成功,播放转换后的文件确认功能正常。
  • 04.28 13:37:49
    发表了文章 2024-04-28 13:37:49

    FFmpeg开发笔记(十三)Windows环境给FFmpeg集成libopus和libvpx

    本文档介绍了在Windows环境下如何为FFmpeg集成libopus和libvpx库。首先,详细阐述了安装libopus的步骤,包括下载源码、配置、编译和安装,并更新环境变量。接着,同样详细说明了libvpx的安装过程,注意需启用--enable-pic选项以避免编译错误。最后,介绍了重新配置并编译FFmpeg以启用这两个库,通过`ffmpeg -version`检查是否成功集成。整个过程参照了《FFmpeg开发实战:从零基础到短视频上线》一书的相关章节。
  • 04.27 12:54:26
    发表了文章 2024-04-27 12:54:26

    FFmpeg开发笔记(十二)Linux环境给FFmpeg集成libopus和libvpx

    在《FFmpeg开发实战》一书中,介绍了如何在Linux环境下为FFmpeg集成libopus和libvpx,以支持WebM格式的Opus和VP8/VP9编码。首先,下载并安装libopus。接着,下载并安装libvpx。最后,在FFmpeg源码目录下,重新配置FFmpeg,启用libopus和libvpx,编译并安装。通过`ffmpeg -version`检查版本信息,确认libopus和libvpx已启用。
  • 04.27 12:54:05
    发表了文章 2024-04-27 12:54:05

    FFmpeg开发笔记(十一)Windows环境给FFmpeg集成vorbis和amr

    在Windows环境下,为FFmpeg集成音频编解码库,包括libogg、libvorbis和opencore-amr,涉及下载源码、配置、编译和安装步骤。首先,安装libogg,通过配置、make和make install命令完成,并更新PKG_CONFIG_PATH。接着,安装libvorbis,同样配置、编译和安装,并修改pkgconfig文件。之后,安装opencore-amr。最后,重新配置并编译FFmpeg,启用ogg和amr支持,通过ffmpeg -version检查是否成功。整个过程需确保环境变量设置正确,并根据路径添加相应库。
  • 04.27 11:47:52
    发表了文章 2024-04-27 11:47:52

    FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr

    在Linux环境下,为FFmpeg添加对AAC、MP3、OGG和AMR音频格式的支持,需安装libogg、libvorbis和opencore-amr库。首先,从官方源下载各库的最新源码,如libogg-1.3.5、libvorbis-1.3.7和opencore-amr-0.1.6,然后解压并依次执行`./configure`、`make`和`make install`进行编译安装。接着,在FFmpeg源码目录中,使用`./configure`命令重新配置,并重新编译安装FFmpeg。最后,验证FFmpeg版本信息确认已启用ogg和amr支持。
  • 04.21 12:29:51
    发表了文章 2024-04-21 12:29:51

    FFmpeg开发笔记(九)Linux交叉编译Android的x265库

    在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
  • 04.20 12:30:04
    发表了文章 2024-04-20 12:30:04

    FFmpeg开发笔记(八)Linux交叉编译Android的FFmpeg库

    在Linux环境下交叉编译Android所需的FFmpeg so库,首先下载`android-ndk-r21e`,然后解压。接着,上传FFmpeg及相关库(如x264、freetype、lame)源码,修改相关sh文件,将`SYSTEM=windows-x86_64`改为`SYSTEM=linux-x86_64`并删除回车符。对x264的configure文件进行修改,然后编译x264。同样编译其他第三方库。设置环境变量`PKG_CONFIG_PATH`,最后在FFmpeg源码目录执行配置、编译和安装命令,生成的so文件复制到App工程指定目录。
  • 04.14 12:02:18
    发表了文章 2024-04-14 12:02:18

    FFmpeg开发笔记(七)欧拉系统编译安装FFmpeg

    FFmpeg跨平台支持多系统,包括Linux、macOS、Windows和Android。官方提供[编译指南](https://trac.ffmpeg.org/wiki/CompilationGuide)。在CentOS上,编译涉及安装多个依赖,如NASM、Yasm、libx264、libx265、libfdk_aac等。同样,在EulerOS上,需安装相关工具并分别编译x264、x265和FFmpeg。详细FFmpeg开发内容可参考《FFmpeg开发实战:从零基础到短视频上线》。
  • 04.13 12:10:50
    发表了文章 2024-04-13 12:10:50

    FFmpeg开发笔记(六)如何访问Github下载FFmpeg源码

    在国内访问GitHub不稳定时,可以采取三种解决方法。首先,通过网站(<https://ping.chinaz.com/github.com>)找到快速响应的GitHub IP,将其添加到本地hosts文件,然后刷新DNS缓存以正常访问。其次,使用代下载网站如(<https://d.serctl.com/>)下载GitHub上的压缩包。最后,可从国内镜像站点,如码云(<https://gitee.com/mirrors/ffmpeg>),下载FFmpeg等开源代码。这些方法有助于绕过访问限制,确保FFmpeg学习与开发的顺利进行。
  • 04.13 12:08:03
    发表了文章 2024-04-13 12:08:03

    FFmpeg开发笔记(五)更新MSYS的密钥环

    在《FFmpeg开发实战:从零基础到短视频上线》中,介绍了解决MSYS下FFmpeg交叉编译时遇到的密钥环过期问题。当尝试安装mingw-w64-x86_64-toolchain时,可能出现签名不被信任的错误。这由于MSYS密钥环有效期仅为150天,过期后需更新。通过`pacman-key --list-sigs`检查密钥状态,发现密钥已过期。解决方法是访问`https://repo.msys2.org/msys/x86_64/`下载msys2-keyring最新版,然后验证并安装更新。更新后,密钥环有效期将延长至2024年4月10日,确保能正常安装交叉编译工具链。
  • 04.06 11:50:56
    发表了文章 2024-04-06 11:50:56

    FFmpeg开发笔记(四)FFmpeg的动态链接库介绍

    FFmpeg是一个强大的多媒体处理框架,提供ffmpeg、ffplay和ffprobe工具及八个库:avcodec(编解码)、avdevice(设备输入输出)、avfilter(音视频滤镜)、avformat(格式处理)、avutil(通用工具和算法)、postproc(后期效果)、swresample(音频重采样)和swscale(视频图像转换)。这些库支持定制化开发,涵盖了从采集、编码、过滤到输出的全过程。了解详细FFmpeg开发信息,可参考《FFmpeg开发实战:从零基础到短视频上线》。
  • 04.06 11:49:01
    发表了文章 2024-04-06 11:49:01

    FFmpeg开发笔记(三)FFmpeg的可执行程序介绍

    FFmpeg提供ffmpeg、ffplay和ffprobe三个可执行程序。ffmpeg用于音视频转换和查询支持信息,如编解码器、文件格式和协议。ffplay是一个简单的播放器,支持播放音视频并显示相关信息。ffprobe用于分析多媒体文件参数和数据包详情。《FFmpeg开发实战:从零基础到短视频上线》一书提供更深入的开发知识。
  • 04.05 12:43:52
    发表了文章 2024-04-05 12:43:52

    FFmpeg开发笔记(二)搭建Windows系统的开发环境

    在Windows上学习FFmpeg通常较困难,但通过安装预编译的FFmpeg开发包可以简化流程。首先需要安装MSYS2来模拟Linux环境。下载并执行MSYS2安装包,然后修改msys2_shell.cmd以继承Windows的Path变量。使用pacman安装必要的编译工具。接着,下载预编译的FFmpeg Windows包,解压并配置系统Path。最后,在MSYS2环境中运行`ffmpeg -version`确认安装成功。欲深入学习FFmpeg开发,推荐阅读《FFmpeg开发实战:从零基础到短视频上线》。
  • 04.05 12:41:29
    发表了文章 2024-04-05 12:41:29

    FFmpeg开发笔记(一)搭建Linux系统的开发环境

    本文指导初学者如何在Linux上搭建FFmpeg开发环境。首先,由于FFmpeg依赖第三方库,可以免去编译源码的复杂过程,直接安装预编译的FFmpeg动态库。推荐网站<https://github.com/BtbN/FFmpeg-Builds/releases>提供适用于不同系统的FFmpeg包。但在安装前,需确保系统有不低于2.22版本的glibc库。详细步骤包括下载glibc-2.23源码,配置、编译和安装。接着,下载Linux版FFmpeg安装包,解压至/usr/local/ffmpeg,并设置环境变量。最后编写和编译简单的C或C++测试程序验证FFmpeg环境是否正确配置。
  • 04.04 18:17:26
    发表了文章 2024-04-04 18:17:26

    Android开发之使用OpenGL实现翻书动画

    本文讲述了如何使用OpenGL实现更平滑、逼真的电子书翻页动画,以解决传统贝塞尔曲线方法存在的卡顿和阴影问题。作者分享了一个改造后的外国代码示例,提供了从前往后和从后往前的翻页效果动图。文章附带了`GlTurnActivity`的Java代码片段,展示如何加载和显示书籍图片。完整工程代码可在作者的GitHub找到:https://github.com/aqi00/note/tree/master/ExmOpenGL。
  • 04.04 18:15:04
    发表了文章 2024-04-04 18:15:04

    Android开发之通过渲染纹理展示地球仪

    该文阐述了如何使用OpenGL为三维物体添加纹理,以增强其真实感。纹理坐标是二维的,用于标记摊平后的“布料”对应物体的哪个部位,类似裁缝制作衣服的过程。在OpenGL中,启用纹理和深度测试是关键,还包括设置纹理参数、分配纹理编号、绑定位图材质等步骤。计算材质的纹理坐标后,通过`glDrawArrays`结合顶点和纹理坐标逐个贴图。最终示例展示了将世界地图贴到球体上形成逼真的地球仪效果。通过控制旋转、平移和缩放,能实现简单的三维动画效果。
  • 04.04 18:11:28
    发表了文章 2024-04-04 18:11:28

    Android开发之利用GL10描绘点、线、面

    本文介绍了如何使用GL10进行三维图形绘制。首先,每个点由三个浮点数(x, y, z)表示,数组大小为顶点数的三倍来构建平面。接着,通过`FloatBuffer`将浮点数组转换为OpenGL可识别的格式。绘制图形时,需启用和禁用顶点开关,并调用`glVertexPointer`指定顶点坐标和`glDrawArrays`绘制点、线、面。文中展示了绘制立方体线框的代码,包括顶点数组转换、立方体各面的定义以及绘制方法。最后,提到了球体的绘制概念。
  • 04.04 18:06:22
    发表了文章 2024-04-04 18:06:22

    Android开发之OpenGL的画笔工具GL10

    这篇文章简述了OpenGL通过GL10进行三维图形绘制,强调颜色取值范围为0.0到1.0,背景和画笔颜色设置方法;介绍了三维坐标系及与之相关的旋转、平移和缩放操作;最后探讨了坐标矩阵变换,包括设置绘图区域、调整镜头参数和改变观测方位。示例代码展示了如何使用这些方法创建简单的三维立方体。
  • 04.04 18:00:17
    发表了文章 2024-04-04 18:00:17

    Android开发之OpenGL绘制三维图形的流程

    即将连载的系列文章将探索Android上的OpenGL开发,这是一种用于创建3D图形和动画的技术。OpenGL是跨平台的图形库,Android已集成其API。文章以2D绘图为例,解释了OpenGL的3个核心元素:GLSurfaceView(对应View)、GLSurfaceView.Renderer(类似Canvas)和GL10(类似Paint)。通过将这些结合,Android能实现3D图形渲染。文章介绍了Renderer接口的三个方法,分别对应2D绘图的构造、测量布局和绘制过程。示例代码展示了如何在布局中添加GLSurfaceView并注册渲染器。
  • 发表了文章 2024-05-19

    FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器

  • 发表了文章 2024-05-18

    FFmpeg开发笔记(十九)FFmpeg开启两个线程分别解码音视频

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(十四)FFmpeg音频重采样的缓存

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(十一)Windows环境给FFmpeg集成vorbis和amr

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(十五)详解MediaMTX的推拉流

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(八)Linux交叉编译Android的FFmpeg库

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(七)欧拉系统编译安装FFmpeg

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(六)如何访问Github下载FFmpeg源码

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(五)更新MSYS的密钥环

  • 发表了文章 2024-05-15

    Android开发之通过渲染纹理展示地球仪

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(一)搭建Linux系统的开发环境

  • 发表了文章 2024-05-15

    Android开发之利用GL10描绘点、线、面

  • 发表了文章 2024-05-15

    Android开发之OpenGL绘制三维图形的流程

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(二)搭建Windows系统的开发环境

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(十八)FFmpeg兼容各种音频格式的播放

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(十三)Windows环境给FFmpeg集成libopus和libvpx

  • 发表了文章 2024-05-15

    FFmpeg开发笔记(十二)Linux环境给FFmpeg集成libopus和libvpx

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息