随笔分类 - ffmpeg
基于ffmpeg的音视频编码开发
摘要:
ijkplayer是Bilibili公司(简称B站)基于FFmpeg3.4研发并开源的国产播放器,它可运行于Android和iOS系统,既支持播放本地视频文件,也支持播放网络上的流媒体链接。 之前的文章《Linux编译ijkplayer的Android平台so库》介绍了如何编译获得App工程所需i
阅读全文
![FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频](https://img2024.cnblogs.com/blog/729938/202410/729938-20241007153335444-1365944930.png)
摘要:
ijkplayer是一款由B站研发的移动端国产播放器,它基于FFmpeg3.4版本,同时兼容Android和iOS两大移动操作系统。ijkplayer的源码托管地址为https://github.com/bilibili/ijkplayer,截止2024年9月15日,ijkplayer获得3.24万
阅读全文
![FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库](https://img2024.cnblogs.com/blog/729938/202410/729938-20241007153140152-67685590.png)
摘要:
《FFmpeg开发实战:从零基础到短视频上线》一书的“5.1.2 把音频流保存为PCM文件”介绍了如何把媒体文件中的音频流转存为原始的PCM音频,在样例代码的转存过程中,解码后的PCM数据未经任何加工处理,就直接保存到二进制文件。也就是说,原音频的采样频率是多少,PCM文件的采样频率也是多少;原音
阅读全文
![FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频](https://img2024.cnblogs.com/blog/729938/202410/729938-20241007153012983-1067535603.png)
摘要:
继音视频播放器ExoPlayer之后,谷歌又推出了音视频转换器Transformer,要在音视频加工领域施展拳脚。根据Android开发者官网介绍:Jetpack Media3是Android媒体库的新家,可让App呈现丰富的视听体验。Media3提供了一个简单的架构,能够基于设备功能开展自定义与
阅读全文
![FFmpeg开发笔记(五十七)使用Media3的Transformer加工视频文件](https://img2024.cnblogs.com/blog/729938/202410/729938-20241007152853716-1739167647.png)
摘要:
Android早期的MediaPlayer控件对于网络视频的兼容性很差,所以后来单独推出了Exoplayer库增强支持网络视频,在《Android Studio开发实战:从零基础到App上线(第3版)》一书第14章的“14.3.3 新型播放器ExoPlayer”就详细介绍了Exoplayer库的详
阅读全文
![FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频](https://img2024.cnblogs.com/blog/729938/202410/729938-20241007152709434-1685523198.png)
摘要:
喊了多年的互联网寒冬,今年的寒风格外凛冽,还在坚守安卓开发的朋友着实不容易。因为能转行的早就转了,能转岗的也早就转了,那么安卓程序员比较迷茫的就是,我该学什么安卓技术才好呢?还是直接扔了安卓再去搞别的技术吗? 下面探讨下安卓程序员还能在哪些方面进阶修炼,主要有以下三个方向。 一、纵向钻研谷歌爸爸推
阅读全文
![FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势](https://img2024.cnblogs.com/blog/729938/202410/729938-20241007152452020-1953862874.png)
摘要:
之前的文章《利用RTMP协议构建电脑与手机的直播Demo》介绍了如何使用RTMP Streamer实现完整的RTMP直播流程,另一篇文章《利用SRT协议构建手机APP的直播Demo》介绍了如何使用SRT Streamer实现完整的SRT直播流程,接下来介绍如何使用EasyPusher-Androi
阅读全文
![FFmpeg开发笔记(五十四)使用EasyPusher实现移动端的RTSP直播](https://img2024.cnblogs.com/blog/729938/202408/729938-20240831154429870-760697489.png)
摘要:
EasyPusher是一款国产的RTSP直播录制推流客户端工具,它支持Windows、Linux、Android、iOS等操作系统。EasyPusher采用RTSP推流协议,其中安卓版EasyPusher的Github托管地址为https://github.com/EasyDarwin/EasyP
阅读全文
![FFmpeg开发笔记(五十三)移动端的国产直播录制工具EasyPusher](https://img2024.cnblogs.com/blog/729938/202408/729938-20240831153725963-372507882.png)
摘要:
GSYVideoPlayer是一个国产的移动端视频播放器,它采用了IJKPlayer、Media3(EXOPlayer)、MediaPlayer、AliPlayer等四种播放器内核,支持弹幕、滤镜、广告等多项功能。 GSYVideoPlayer的Github主页为https://github.co
阅读全文
![FFmpeg开发笔记(五十二)移动端的国产视频播放器GSYVideoPlayer](https://img2024.cnblogs.com/blog/729938/202408/729938-20240831153408438-1933660010.png)
摘要:
很多程序员想学习音视频的编程开发,却不知从何学习,因为音视频技术的体系庞大、知识杂糅,一眼望去就令人生怯。那么学习音视频建议站在前人的肩膀上,从优秀的音视频开源框架开始钻研,先熟悉这些开源工具的具体用法,再深入了解这些开源框架的实现代码。 有鉴于此,博主整理了几个流行的音视频开源框架,分别对它们概
阅读全文
![FFmpeg开发笔记(五十一)适合学习研究的几个音视频开源框架](https://img2024.cnblogs.com/blog/729938/202408/729938-20240831152951469-126016389.png)
摘要:
自从互联网普及之后,用于视频直播的流媒体技术就发展起来。这几十年中,比较有影响的主要有MMS、RTSP、RTMP、HLS、SRT、RIST几种,分别介绍如下。 1、MMS协议 MMS全称Microsoft Multimedia Server,意思是微软多媒体服务器,它是微软公司在上世纪九十年代发布
阅读全文
![FFmpeg开发笔记(五十)聊聊几种流媒体传输技术的前世今生](https://img2024.cnblogs.com/blog/729938/202408/729938-20240831152820462-1585463213.png)
摘要:
对各高校即将毕业的学子来说,毕业设计算是在大学里的最后一个大作业。特别是软件、计算机、电子等相关专业,毕业设计非常讲究实操,往往要求实现一个实用的、可用的、易用的软件系统或手机APP。 不管是软件还是APP,都要通过编程来实现。对于编程类的毕业设计,既有图书馆管理系统这样万年不变的增删改查软件,也
阅读全文
![FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP](https://img2024.cnblogs.com/blog/729938/202407/729938-20240728132645030-389695203.png)
摘要:
音视频技术的一个主要用途是直播,包括电视直播、电脑直播、手机直播等等,甚至在线课堂、在线问诊、安防监控等应用都属于直播系统的范畴。由于直播系统不仅涉及到音视频数据的编解码,还涉及到音视频数据的实时传输,因此直播领域采用的网络技术标准比较高,实现起来也比一般的WEB系统复杂。 一、直播系统的概念结构
阅读全文
![FFmpeg开发笔记(四十八)从0开始搭建直播系统的开源软件架构](https://img2024.cnblogs.com/blog/729938/202407/729938-20240728132506496-1821685031.png)
摘要:
IT寒冬之下,程序员这个职业不再像以往那么吃香,尤其是APP开发的门槛越来越高,使得安卓程序员不得不求变,如果不在技术上及时转型提高,逆水行舟未来不可期呀。 有鉴于此,博主整理了几个可供安卓程序员的技术转型发展方向,供大家参考。 1、继续深耕Android的应用开发 谷歌爸爸是安卓的爹,要想继续吃
阅读全文
![FFmpeg开发笔记(四十七)寒冬下安卓程序员的几个技术转型发展方向](https://img2024.cnblogs.com/blog/729938/202407/729938-20240728132217992-1055670025.png)
摘要:
不管是传统互联网还是移动互联网,实时数据传输都是刚需,比如以QQ、微信为代表的即时通信工具,能够实时传输文本和图片。其中一对一的图文通信叫做私聊,多对多的图文通信叫做群聊。 除了常见的图文即时通信,还有实时音视频通信,比如一对一的音频通话、一对一的视频通话等等,此时可采用WebRTC技术,有关We
阅读全文
![FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo](https://img2024.cnblogs.com/blog/729938/202407/729938-20240728132030940-35717196.png)
摘要:
SRT Streamer是一个安卓手机端的开源SRT协议直播推流框架,可用于RTMP直播和SRT直播。SRT Streamer支持的视频编码包括H264、H265等等,支持的音频编码包括AAC、OPUS等等,可谓功能强大的APP直播框架。 相比之下,另一款APP直播框架RTMP Streamer支
阅读全文
![FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流](https://img2024.cnblogs.com/blog/729938/202407/729938-20240728131451302-1346466605.png)
摘要:
一年一度的毕业季就要到了,毕业设计算是大学生毕业前的最后一个大作业,尤其是计算机相关专业的毕业设计,通常要通过编程开发一个软件,比如开发一个图书馆管理系统,开发一个电商APP等等。 一个好的毕业设计可以给作者加分,可以评优,还能获得编程开发的实战经验,所以很有必要认真去做毕业设计。那么就计算机相关
阅读全文
![FFmpeg开发笔记(四十四)毕业设计可做的几个拉满颜值的音视频APP](https://img2024.cnblogs.com/blog/729938/202407/729938-20240728131114335-1245260910.png)
摘要:
《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKi
阅读全文
![FFmpeg开发笔记(四十三)使用SRS开启SRT协议的视频直播服务](https://img2024.cnblogs.com/blog/729938/202407/729938-20240707162538884-130775377.png)
摘要:
《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKi
阅读全文
![FFmpeg开发笔记(四十二)使用ZLMediaKit开启SRT视频直播服务](https://img2024.cnblogs.com/blog/729938/202407/729938-20240707162408147-691831631.png)
摘要:
《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有于2017年推出的SRT协议,相比常见的RTMP协议,SRT协议具有更低的延迟,并且消除了卡帧、抖动等花屏现象。腾讯视频云已经引入了SRT协
阅读全文
![FFmpeg开发笔记(四十一)结合OBS与MediaMTX实现SRT直播推流](https://img2024.cnblogs.com/blog/729938/202407/729938-20240707162227902-386001743.png)