aqi00_个人页

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

个人介绍

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

擅长的技术

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

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

云产品技术能力:

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

阿里云技能认证

详细说明
暂无更多信息

2024年10月

  • 10.27 11:39:13
    发表了文章 2024-10-27 11:39:13

    FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频

    ijkplayer是由Bilibili基于FFmpeg3.4研发并开源的播放器,适用于Android和iOS,支持本地视频及网络流媒体播放。本文详细介绍如何在新版Android Studio中导入并使用ijkplayer库,包括Gradle版本及配置更新、导入编译好的so文件以及添加直播链接播放代码等步骤,帮助开发者顺利进行App调试与开发。更多FFmpeg开发知识可参考《FFmpeg开发实战:从零基础到短视频上线》。
  • 10.23 13:34:16
    发表了文章 2024-10-23 13:34:16

    FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库

    ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
  • 10.20 10:58:41
    发表了文章 2024-10-20 10:58:41

    FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频

    《FFmpeg开发实战:从零基础到短视频上线》一书中的“5.1.2 把音频流保存为PCM文件”章节介绍了将媒体文件中的音频流转换为原始PCM音频的方法。示例代码直接保存解码后的PCM数据,保留了原始音频的采样频率、声道数量和采样位数。但在实际应用中,有时需要特定规格的PCM音频。例如,某些语音识别引擎仅接受16位PCM数据,而标准MP3音频通常采用32位采样,因此需将32位MP3音频转换为16位PCM音频。
  • 10.16 14:34:43
    发表了文章 2024-10-16 14:34:43

    FFmpeg开发笔记(五十七)使用Media3的Transformer加工视频文件

    谷歌推出的Transformer,作为Jetpack Media3架构的一部分,助力开发者实现音视频格式转换与编辑。Media3简化了媒体处理流程,提升了定制性和可靠性。Transformer可用于剪辑、添加滤镜等操作,其示例代码可在指定GitHub仓库中找到。要使用Transformer,需在`build.gradle`中添加相关依赖,并按文档编写处理逻辑,最终完成音视频转换任务。具体步骤包括配置剪辑参数、设置空间效果以及监听转换事件等。
  • 10.14 13:25:44
    发表了文章 2024-10-14 13:25:44

    FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频

    ExoPlayer最初是为了解决Android早期MediaPlayer控件对网络视频兼容性差的问题而推出的。现在,Android官方已将其升级并纳入Jetpack的Media3库,使其成为音视频操作的统一引擎。新版ExoPlayer支持多种协议,解决了设备和系统碎片化问题,可在整个Android生态中一致运行。通过修改`build.gradle`文件、布局文件及Activity代码,并添加必要的权限,即可集成并使用ExoPlayer进行网络视频播放。具体步骤包括引入依赖库、配置播放界面、编写播放逻辑以及添加互联网访问权限。
  • 10.13 11:17:43
    发表了文章 2024-10-13 11:17:43

    FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势

    多年的互联网寒冬在今年尤为凛冽,坚守安卓开发愈发不易。面对是否转行或学习新技术的迷茫,安卓程序员可从三个方向进阶:1)钻研谷歌新技术,如Kotlin、Flutter、Jetpack等;2)拓展新功能应用,掌握Socket、OpenGL、WebRTC等专业领域技能;3)结合其他行业,如汽车、游戏、安全等,拓宽职业道路。这三个方向各有学习难度和保饭碗指数,助你在安卓开发领域持续成长。
  • 10.12 13:33:05
    发表了文章 2024-10-12 13:33:05

    FFmpeg开发笔记(五十四)使用EasyPusher实现移动端的RTSP直播

    本文介绍了如何使用EasyPusher-Android实现RTSP直播流程。首先对比了RTSP、RTMP、SRT和RIST四种流媒体协议,并以RTSP为例,详细说明了使用EasyPusher-Android向流媒体服务器进行RTSP直播推流的方法。文中还提供了OBS Studio配置RTSP插件及ZLMediaKit云服务器部署的相关信息,通过修改EasyPusher-Android源码使其支持通用RTSP地址,最终验证了直播功能的成功实现。

2024年09月

  • 09.22 11:49:09
    发表了文章 2024-09-22 11:49:09

    FFmpeg开发笔记(五十三)移动端的国产直播录制工具EasyPusher

    EasyPusher是一款国产RTSP直播录制推流客户端工具,支持Windows、Linux、Android及iOS等系统。尽管其GitHub仓库(安卓版:https://github.com/EasyDarwin/EasyPusher-Android)已多年未更新,但通过一系列改造,如升级SDK版本、迁移到AndroidX、指定本地NDK版本及更新Gradle版本等,仍可在最新Android Studio上运行。以下是针对Android Studio Dolphin版本的具体改造步骤。
  • 09.21 11:46:40
    发表了文章 2024-09-21 11:46:40

    FFmpeg开发笔记(五十二)移动端的国产视频播放器GSYVideoPlayer

    GSYVideoPlayer是一款国产移动端视频播放器,支持弹幕、滤镜、广告等功能,采用IJKPlayer、Media3(EXOPlayer)、MediaPlayer及AliPlayer多种内核。截至2024年8月,其GitHub星标数达2万。集成时需使用新版Android Studio,并按特定步骤配置依赖与权限。提供了NormalGSYVideoPlayer、GSYADVideoPlayer及ListGSYVideoPlayer三种控件,支持HLS、RTMP等多种直播链接。
  • 09.08 11:40:09
    发表了文章 2024-09-08 11:40:09

    FFmpeg开发笔记(五十一)适合学习研究的几个音视频开源框架

    音视频编程对许多程序员来说是一片充满挑战的领域,但借助如OpenCV、LearnOpenGL、FFmpeg、OBS Studio及VLC media player等强大的开源工具,可以降低入门门槛。这些框架不仅覆盖了计算机视觉、图形渲染,还包括多媒体处理与直播技术,通过多种编程语言如Python、C++的应用,使得音视频开发更为便捷。例如,OpenCV支持跨平台的视觉应用开发,FFmpeg则擅长多媒体文件的处理与转换,而VLC media player则是验证音视频文件质量的有效工具。
  • 09.07 12:04:54
    发表了文章 2024-09-07 12:04:54

    FFmpeg开发笔记(五十)聊聊几种流媒体传输技术的前世今生

    自互联网普及以来,流媒体技术特别是视频直播技术不断进步,出现了多种传输协议。早期的MMS由微软主导,但随WMV格式衰落而减少使用。RTSP由网景和RealNetworks联合提出,支持多种格式,但在某些现代应用中不再受支持。RTMP由Adobe开发,曾广泛用于网络直播,但因HTML5不支持Flash而受影响。HLS由苹果开发,基于HTTP,适用于点播。SRT和RIST均为较新协议,强调安全与可靠性,尤其SRT在电视直播中应用增多。尽管RTMP仍占一定市场,但SRT等新协议正逐渐兴起。
  • 09.01 12:44:14
    发表了文章 2024-09-01 12:44:14

    FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP

    对于软件、计算机等专业的毕业生,毕业设计需实现实用软件或APP。新颖的设计应结合最新技术,如5G时代的音视频技术。示例包括: 1. **短视频分享APP**: 集成FFmpeg实现视频剪辑功能,如添加字幕、转场特效等。 2. **电商购物APP**: 具备直播带货功能,使用RTMP/SRT协议支持流畅直播体验。 3. **同城生活APP**: 引入WebRTC技术实现可信的视频通话功能。这些应用不仅实用,还能展示开发者紧跟技术潮流的能力。

2024年08月

  • 08.31 11:24:40
    发表了文章 2024-08-31 11:24:40

    FFmpeg开发笔记(四十八)从0开始搭建直播系统的开源软件架构

    音视频技术广泛应用于直播系统,涵盖电视、电脑、手机直播等多种形式,并延伸至在线教育、医疗咨询和安全监控等领域。直播系统涉及实时编解码与传输,技术实现较复杂。从用户角度看,直播系统分为来源方和观看方,但在开发者视角下还需加入云平台作为中转。本文提出一套基于全开源软件的直播系统架构,分为三层:开源直播录制软件(如OBS Studio、RTMP Streamer),开源流媒体服务器(如SRS、ZLMediaKit),以及开源音视频播放器(如VLC media player、ExoPlayer)。这些组件共同构成一个高效、灵活且成本低廉的直播解决方案。
  • 08.18 11:29:19
    发表了文章 2024-08-18 11:29:19

    FFmpeg开发笔记(四十七)寒冬下安卓程序员的几个技术转型发展方向

    IT寒冬使APP开发门槛提升,安卓程序员需转型。选项包括:深化Android开发,跟进Google新技术如Kotlin、Jetpack、Flutter及Compose;研究Android底层框架,掌握AOSP;转型Java后端开发,学习Spring Boot等框架;拓展大前端技能,掌握JavaScript、Node.js、Vue.js及特定框架如微信小程序、HarmonyOS;或转向C/C++底层开发,通过音视频项目如FFmpeg积累经验。每条路径都有相应的书籍和技术栈推荐,助你顺利过渡。
  • 08.17 11:51:11
    发表了文章 2024-08-17 11:51:11

    FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo

    实时数据传输在互联网中至关重要,不仅支持即时通讯如QQ、微信的文字与图片传输,还包括音视频通信。一对一通信常采用WebRTC技术,如《Android Studio开发实战》中的App集成示例;而一对多的在线直播则需部署独立的流媒体服务器,使用如SRT等协议。SRT因其优越的直播质量正逐渐成为主流。本文档概述了SRT协议的使用,包括通过OBS Studio和SRT Streamer进行SRT直播推流的方法,并展示了推流与拉流的成功实例。更多细节参见《FFmpeg开发实战》一书。
  • 08.11 12:01:52
    发表了文章 2024-08-11 12:01:52

    FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流

    ​SRT Streamer是一个安卓手机端的开源SRT协议直播推流框架,可用于RTMP直播和SRT直播。SRT Streamer支持的视频编码包括H264、H265等等,支持的音频编码包括AAC、OPUS等等,可谓功能强大的APP直播框架。另一款APP直播框架RTMP Streamer支持RTMP直播和RTSP直播,不支持SRT协议的直播。而本文讲述的SRT Streamer支持RTMP直播和SRT直播,不支持RTSP协议的直播。有关RTMP Streamer的说明参见之前的文章《使用RTMP Streamer开启APP直播推流》,下面介绍如何使用SRT Streamer开启手机直播。
  • 08.10 12:04:40
    发表了文章 2024-08-10 12:04:40

    FFmpeg开发笔记(四十四)毕业设计可做的几个拉满颜值的音视频APP

    一年一度的毕业季来临,计算机专业的毕业设计尤为重要,不仅关乎学业评价还积累实战经验。选择紧跟5G技术趋势的音视频APP作为课题极具吸引力。这里推荐三类应用:一是融合WebRTC技术实现视频通话的即时通信APP;二是具备在线直播功能的短视频分享平台,涉及RTMP/SRT等直播技术;三是具有自定义动画特效及卡拉OK歌词字幕功能的视频剪辑工具。这些项目不仅技术含量高,也符合市场需求,是毕业设计的理想选择。
  • 08.04 11:49:28
    发表了文章 2024-08-04 11:49:28

    FFmpeg开发笔记(四十三)使用SRS开启SRT协议的视频直播服务

    《FFmpeg开发实战》书中介绍了轻量级流媒体服务器MediaMTX,适合测试但不适用于生产环境。SRS是一款国产开源服务器,支持RTMP、SRT等协议,适合生产使用。要启用SRS的SRT推流,需配置`srt.conf`,开启SRT服务并配置端口。在确保FFmpeg集成libsrt后,拉流则使用类似但带有`m=request`的地址。在Windows上,同样需要集成libsrt的FFmpeg来使用ffplay拉流。SRS的日志确认了推拉流的成功。书中提供更深入的FFmpeg开发知识。
  • 08.03 12:02:51
    发表了文章 2024-08-03 12:02:51

    FFmpeg开发笔记(四十二)使用ZLMediaKit开启SRT视频直播服务

    《FFmpeg开发实战》书中介绍了使用MediaMTX测试RTSP/RTMP,但该工具简单,不适合生产环境。ZLMediaKit,一个支持RTSP/RTMP/SRT的国产流媒体服务器,是更好的选择。要通过ZLMediaKit和FFmpeg实现SRT推流,需确保FFmpeg已集成libsrt。ZLMediaKit默认配置文件中,SRT监听9000端口。日志显示推流和拉流成功。ZLMediaKit支持多种音视频编码,如H264、AAC等。要了解更多FFmpeg开发信息,可参考该书。

2024年07月

  • 07.28 12:30:36
    发表了文章 2024-07-28 12:30:36

    FFmpeg开发笔记(四十一)结合OBS与MediaMTX实现SRT直播推流

    《FFmpeg开发实战》书中介绍了直播中的RTSP、RTMP和SRT协议,SRT提供更低延迟和稳定性。FFmpeg从4.0版起支持SRT,OBS Studio和MediaMTX等工具也已支持。在Windows环境下,通过集成libsrt的FFmpeg,可以建立SRT直播系统。MediaMTX日志显示SRT服务监听8890端口,OBS Studio设置SRT推流至"publish:live"。ffplay和VLC通过"read:live"拉流成功,验证了SRT推拉流功能。更多详情见《FFmpeg开发实战:从零基础到短视频上线》。
  • 07.27 11:56:24
    发表了文章 2024-07-27 11:56:24

    FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流

    《FFmpeg开发实战》书中介绍了如何使用FFmpeg向网络推流,简单流媒体服务器MediaMTX不适用于复杂业务。nginx-rtmp是Nginx的RTMP模块,提供基本流媒体服务。要在Linux上集成rtmp,需从官方下载nginx和nginx-rtmp-module源码,解压后在nginx目录配置并添加rtmp模块,编译安装。配置nginx.conf启用RTMP服务,监听1935端口。使用ffmpeg推流测试,如能通过VLC播放,表明nginx-rtmp运行正常。更多详情见书本。
  • 07.21 11:31:10
    发表了文章 2024-07-21 11:31:10

    FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg

    在Windows上使用Visual Studio 2022进行FFmpeg和SDL2集成开发,首先安装FFmpeg至E:\msys64\usr\local\ffmpeg,然后新建C++控制台项目。在项目属性中,添加FFmpeg和SDL2的头文件及库文件目录。接着配置链接器的附加依赖项,包括多个FFmpeg及SDL2的lib文件。在代码中引入FFmpeg的`av_log`函数输出"Hello World",编译并运行,若看到"Hello World",即表示集成成功。详细步骤可参考《FFmpeg开发实战:从零基础到短视频上线》。
  • 07.20 11:23:01
    发表了文章 2024-07-20 11:23:01

    FFmpeg开发笔记(三十八)APP如何访问SRS推流的RTMP直播地址

    《FFmpeg开发实战》书中介绍了轻量级流媒体服务器MediaMTX,适合测试RTSP/RTMP协议,但不适用于复杂直播场景。SRS是一款强大的开源流媒体服务器,支持多种协议,起初为RTMP,现扩展至HLS、SRT等。在FFmpeg 6.1之前,推送给SRS的HEVC流不受支持。要播放RTMP流,Android应用可使用ExoPlayer,需在`build.gradle`导入ExoPlayer及RTMP扩展,并根据URL类型创建MediaSource。若SRS播放黑屏,需在配置文件中开启`gop_cache`以缓存关键帧。
  • 07.14 11:36:20
    发表了文章 2024-07-14 11:36:20

    FFmpeg开发笔记(三十七)分析SRS对HLS协议里TS包的插帧操作

    《FFmpeg开发实战》书中讲解了音视频封装格式,重点介绍了TS,因其固定长度和独立解码特性,常用于HLS协议。HLS通过m3u8文件指示客户端播放TS分片。SRS服务器在转换MP4至TS时,会在每个TS包头添加SPS和PPS帧,保证解码完整性。这一过程在SrsIngestHlsOutput::on_ts_video函数中体现,调用write_h264_sps_pps和write_h264_ipb_frame完成。详细实现涉及SrsRawH264Stream::mux_sequence_header函数,遵循ISO标准写入SPS和PPS NAL单元。
  • 07.13 14:58:56
    发表了文章 2024-07-13 14:58:56

    FFmpeg开发笔记(三十六)Linux环境安装SRS实现视频直播推流

    《FFmpeg开发实战》书中第10章提及轻量级流媒体服务器MediaMTX,适合测试RTSP/RTMP协议,但不适合生产环境。推荐使用SRS或ZLMediaKit,其中SRS是国产开源实时视频服务器,支持多种流媒体协议。本文简述在华为欧拉系统上编译安装SRS和FFmpeg的步骤,包括安装依赖、下载源码、配置、编译以及启动SRS服务。此外,还展示了如何通过FFmpeg进行RTMP推流,并使用VLC播放器测试拉流。更多FFmpeg开发内容可参考相关书籍。
  • 07.07 11:34:19
    发表了文章 2024-07-07 11:34:19

    FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt

    该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
  • 07.06 13:33:21
    发表了文章 2024-07-06 13:33:21

    FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist

    《FFmpeg开发实战》书中介绍了直播的RTSP和RTMP协议,以及新协议SRT和RIST。SRT是安全可靠传输协议,RIST是可靠的互联网流传输协议,两者于2017年发布。腾讯视频云采用SRT改善推流卡顿。以下是Linux环境下为FFmpeg集成libsrt和librist的步骤:下载安装源码,配置、编译和安装。要启用这些库,需重新配置FFmpeg,添加相关选项,然后编译和安装。成功后,通过`ffmpeg -version`检查版本信息以确认启用SRT和RIST支持。详细过程可参考书中相应章节。

2024年06月

  • 06.30 12:17:46
    发表了文章 2024-06-30 12:17:46

    FFmpeg开发笔记(三十三)分析ZLMediaKit对H.264流的插帧操作

    《FFmpeg开发实战》书中3.4.3节讲解如何将H.264流封装成MP4。H.264流通常以SPS→PPS→IDR帧开始,这一说法通过雷霄骅的H264分析器得到验证。分析器能解析H.264文件但不支持MP4。ZLMediaKit服务器在遇到I帧时会自动插入SPS和PPS配置帧,确保流符合标准格式。若缺少这些帧,客户端拉流时会报错。FFmpeg开发实战:从零基础到短视频上线》书中提供了更多FFmpeg开发细节。
  • 06.29 15:02:43
    发表了文章 2024-06-29 15:02:43

    FFmpeg开发笔记(三十二)利用RTMP协议构建电脑与手机的直播Demo

    本文讨论了实时数据传输在互联网中的重要性,如即时通讯和在线直播。一对一通信通常使用WebRTC技术,但一对多直播需要流媒体服务器和特定协议,如RTSP、RTMP、SRT或RIST。RTMP由于其稳定性和早期普及,成为国内直播的主流。文章通过实例演示了如何使用OBS Studio和RTMP Streamer进行RTMP推流,并对比了不同流媒体传输协议的优缺点。推荐了两本关于FFmpeg和Android开发的书籍以供深入学习。
  • 06.23 12:20:14
    发表了文章 2024-06-23 12:20:14

    FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流

    RTMP Streamer是一款开源的安卓直播推流框架,支持RTMP、RTSP和SRT协议,适用于各种直播场景。它支持H264、H265、AV1视频编码和AAC、G711、OPUS音频编码。本文档介绍了如何使用Java版的RTMP Streamer,建议使用小海豚版本的Android Studio (Dolphin)。加载项目时,可添加国内仓库加速依赖下载。RTMP Streamer包含五个模块:app、encoder、rtmp、rtplibrary和rtsp。完成加载后,可以在手机上安装并运行APP,提供多种直播方式。开发者可以从《FFmpeg开发实战:从零基础到短视频上线》获取更多信息。
  • 06.22 12:03:30
    发表了文章 2024-06-22 12:03:30

    FFmpeg开发笔记(三十)解析H.264码流中的SPS帧和PPS帧

    《FFmpeg开发实战》书中介绍了音视频编码历史,重点讲述H.264的成功在于其分为视频编码层和网络抽象层。H.264帧类型包括SPS(序列参数集,含视频规格参数),PPS(图像参数集,含编码参数)和IDR帧(立即解码刷新,关键帧)。SPS用于计算视频宽高和帧率,PPS存储编码设置,IDR帧则标志新的解码序列。书中还配以图片展示各帧结构详情,完整内容可参考相关书籍。
  • 06.16 12:37:28
    发表了文章 2024-06-16 12:37:28

    FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid

    XviD是开源MPEG-4视频编码器,与DivX相似但后者非开源。早期MP4常使用XviD或DivX编码,现已被H.264取代。在Windows上集成FFmpeg的XviD编解码库libxvid,需访问<https://labs.xvid.com/source/>下载源码,解压后在MSYS环境中配置、编译和安装。之后重新配置FFmpeg,启用libxvid并编译安装。详细步骤包括configure命令、make和make install。成功后,通过`ffmpeg -version`检查是否启用libxvid。更多音视频开发技术可参考《FFmpeg开发实战:从零基础到短视频上线》。
  • 06.15 12:11:40
    发表了文章 2024-06-15 12:11:40

    FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid

    XviD是开源的MPEG-4视频编解码器,曾与DivX一起用于早期MP4视频编码,但现在已被H.264取代。要集成XviD到Linux上的FFmpeg,首先下载源码,解压后配置并编译安装libxvid。接着,在FFmpeg源码目录中,重新配置FFmpeg以启用libxvid,然后编译并安装。成功后,通过`ffmpeg -version`检查是否启用libxvid。详细步骤包括下载、解压libxvid,使用`configure`和`make`命令安装,以及更新FFmpeg配置并安装。
  • 06.10 12:16:23
    发表了文章 2024-06-10 12:16:23

    FFmpeg开发笔记(二十七)解决APP无法访问ZLMediaKit的直播链接问题

    本文讲述了在使用ZLMediaKit进行视频直播时,遇到移动端通过ExoPlayer和微信小程序播放HLS直播地址失败的问题。错误源于ZLMediaKit对HTTP地址的Cookie校验导致401无权限响应。通过修改ZLMediaKit源码,注释掉相关鉴权代码并重新编译安装,解决了此问题,使得ExoPlayer和小程序能成功播放HLS视频。详细解决方案及FFmpeg集成可参考《FFmpeg开发实战:从零基础到短视频上线》一书。
  • 06.09 11:44:38
    发表了文章 2024-06-09 11:44:38

    FFmpeg开发笔记(二十六)Linux环境安装ZLMediaKit实现视频推流

    《FFmpeg开发实战》书中介绍轻量级流媒体服务器MediaMTX,但其功能有限,不适合生产环境。推荐使用国产开源的ZLMediaKit,它支持多种流媒体协议和音视频编码标准。以下是华为欧拉系统下编译安装ZLMediaKit和FFmpeg的步骤,包括更新依赖、下载源码、配置、编译、安装以及启动MediaServer服务。此外,还提供了通过FFmpeg进行RTSP和RTMP推流,并使用VLC播放器拉流的示例。
  • 06.08 11:56:00
    发表了文章 2024-06-08 11:56:00

    FFmpeg开发笔记(二十五)Linux环境给FFmpeg集成libwebp

    《FFmpeg开发实战》书中指导如何在Linux环境下为FFmpeg集成libwebp以支持WebP图片编解码。首先,从GitHub下载libwebp源码,解压后通过`libtoolize`,`autogen.sh`,`configure`,`make -j4`和`make install`步骤安装。接着,在FFmpeg源码目录中重新配置并添加`--enable-libwebp`选项,然后进行`make clean`,`make -j4`和`make install`以编译安装FFmpeg。最后,验证FFmpeg版本信息确认libwebp已启用。
  • 06.02 12:29:18
    发表了文章 2024-06-02 12:29:18

    FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器

    AV1是一种高效免费的视频编码标准,由AOM联盟制定,相比H.265压缩率提升约27%。各大流媒体平台倾向使用AV1。本文介绍了如何在Linux环境下为FFmpeg集成AV1编解码库libaom、libdav1d和libsvtav1。涉及下载源码、配置、编译和安装步骤,包括设置环境变量以启用这三个库。
  • 06.01 12:24:05
    发表了文章 2024-06-01 12:24:05

    FFmpeg开发笔记(二十三)使用OBS Studio开启RTMP直播推流

    OBS(Open Broadcaster Software)是一款开源、跨平台的直播和和Linux。官网为<https://obsproject.com/>。要使用OBS进行直播,需执行四步:1) 下载并安装OBS Studio(<https://obsproject.com/download>),2) 启动流媒体服务器如MediaMTX,生成RTMP推流地址,3) 打开OBS Studio,设置直播服务为自定义RTMP服务器(127.0.0.1:1935/stream),调整视频分辨率,4) 添加视频来源并开始直播。同时,通过FFmpeg的拉流程序验证直播功能正常。

2024年05月

  • 05.27 13:24:32
    发表了文章 2024-05-27 13:24:32

    FFmpeg开发笔记(二十二)FFmpeg中SAR与DAR的显示宽高比

    《FFmpeg开发实战》书中指出,视频宽高处理需考虑采样宽高比(SAR),像素宽高比(PAR)和显示宽高比(DAR)。SAR对应AVCodecParameters的sample_aspect_ratio,PAR为width/height。当SAR的num与den不为1时,需计算DAR以正确显示视频。书中提供了转换公式和代码示例,通过SAR或DAR调整视频尺寸。在修正后的playsync2.c程序中,成功调整了meg.vob视频的比例,实现了正确的画面显示。
  • 05.26 11:20:55
    发表了文章 2024-05-26 11:20:55

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

    AVS3是中国首个8K及5G视频编码标准,相比AVS2和HEVC性能提升约30%。解码器libuavs3d支持8K/60P视频实时解码,兼容多种平台。《FFmpeg开发实战》书中介绍了在Windows环境下如何集成libuavs3d到FFmpeg。集成步骤包括下载源码、使用Visual Studio 2022编译、调整配置、安装库文件和头文件,以及重新配置和编译FFmpeg以启用libuavs3d。
  • 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检查是否成功。整个过程需确保环境变量设置正确,并根据路径添加相应库。
  • 发表了文章 2024-10-27

    FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频

  • 发表了文章 2024-10-23

    FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库

  • 发表了文章 2024-10-20

    FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频

  • 发表了文章 2024-10-16

    FFmpeg开发笔记(五十七)使用Media3的Transformer加工视频文件

  • 发表了文章 2024-10-14

    FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频

  • 发表了文章 2024-10-13

    FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势

  • 发表了文章 2024-10-12

    FFmpeg开发笔记(五十四)使用EasyPusher实现移动端的RTSP直播

  • 发表了文章 2024-09-22

    FFmpeg开发笔记(五十三)移动端的国产直播录制工具EasyPusher

  • 发表了文章 2024-09-21

    FFmpeg开发笔记(五十二)移动端的国产视频播放器GSYVideoPlayer

  • 发表了文章 2024-09-08

    FFmpeg开发笔记(五十一)适合学习研究的几个音视频开源框架

  • 发表了文章 2024-09-07

    FFmpeg开发笔记(五十)聊聊几种流媒体传输技术的前世今生

  • 发表了文章 2024-09-01

    FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP

  • 发表了文章 2024-08-31

    FFmpeg开发笔记(四十八)从0开始搭建直播系统的开源软件架构

  • 发表了文章 2024-08-18

    FFmpeg开发笔记(四十七)寒冬下安卓程序员的几个技术转型发展方向

  • 发表了文章 2024-08-17

    FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo

  • 发表了文章 2024-08-11

    FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流

  • 发表了文章 2024-08-10

    FFmpeg开发笔记(四十四)毕业设计可做的几个拉满颜值的音视频APP

  • 发表了文章 2024-08-04

    FFmpeg开发笔记(四十三)使用SRS开启SRT协议的视频直播服务

  • 发表了文章 2024-08-03

    FFmpeg开发笔记(四十二)使用ZLMediaKit开启SRT视频直播服务

  • 发表了文章 2024-07-28

    FFmpeg开发笔记(四十一)结合OBS与MediaMTX实现SRT直播推流

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