合集-FFmpeg开发实战

摘要:FFmpeg开发笔记(一)搭建Linux系统的开发环境对于初学者来说,如何搭建FFmpeg的开发环境是个不小的拦路虎,因为FFmpeg用到了许多第三方开发包,所以要先编译这些第三方源码,之后才能给FFmpeg集成编译好的第三方库。 不过考虑到刚开始仅仅调用FFmpeg的API,不会马上去改FFmpeg的源码,因此只要给系统安装编译好的FFmpeg动态库,即可着手编写简单的FFmpeg程序。 阅读全文
posted @ 2023-04-16 19:02 aqi00 阅读(2377) 评论(0) 推荐(3)
摘要:FFmpeg开发笔记(二)搭建Windows系统的开发环境由于Linux系统比较专业,个人电脑很少安装Linux,反而大都安装Windows系统,因此提高了FFmpeg的学习门槛,毕竟在Windows系统搭建FFmpeg的开发环境还是比较麻烦的。不过若有已经编译好的Windows版本FFmpeg开发包,那就免去了繁琐的Windows编译过程,所以直接安装已 阅读全文
posted @ 2023-04-29 11:29 aqi00 阅读(1195) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(三)FFmpeg的可执行程序介绍​外界对于FFmpeg主要有两种使用途径,一种是在命令行运行FFmpeg的可执行程序,该方式适合没什么特殊要求的普通场景;另一种是通过代码调用FFmpeg的动态链接库,由于开发者可以在C代码中编排个性化的逻辑,因此该方式适合厂商专用的特制场景。更多详细的FFmpeg开发知识参见《FFmpeg开发实战 阅读全文
posted @ 2024-03-09 16:26 aqi00 阅读(849) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(四)FFmpeg的动态链接库介绍FFmpeg不仅提供了ffmpeg、ffplay和ffprobe三个可执行程序,还提供了八个工具库,使得开发者能够调用库里面的函数,从而实现更精准的定制化开发需求。这八个库的名字是avcodec、avdevice、avfilter、avformat、avutil、postproc、swresampl 阅读全文
posted @ 2024-03-10 11:33 aqi00 阅读(593) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(五)更新MSYS的密钥环​ 《FFmpeg开发实战:从零基础到短视频上线》一书提到:使用MSYS对FFmpeg进行交叉编译时,需要事先安装交叉编译工具链,也就是执行下面命令。 pacman -S mingw-w64-x86_64-toolchain 一般情况可以正常安装交叉编译工具链,不过有时会提示错误“signature 阅读全文
posted @ 2024-03-16 18:33 aqi00 阅读(359) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(六)如何访问Github下载FFmpeg源码​学习FFmpeg的时候,经常要到GitHub下载各种开源代码,比如FFmpeg的源码页面位于https://github.com/FFmpeg/FFmpeg。然而国内访问GitHub很不稳定,经常打不开该网站,比如在命令行执行下面的ping命令。 ping github.com 上面的ping结果 阅读全文
posted @ 2024-03-17 11:54 aqi00 阅读(459) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(九)Linux交叉编译Android的x265库​《FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2 交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,前文又介绍了如何在Linux环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在Linux环境交叉编 阅读全文
posted @ 2024-03-30 11:28 aqi00 阅读(660) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr​FFmpeg内置了aac音频格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“5.2.2 Linux环境集成mp3lame”又介绍了如何给FFmpeg集成mp3格式,常见的音频文件除了这两种之外,还有ogg和amr两种格式也较常用。其中ogg格式的编解码依赖于libogg和libvor 阅读全文
posted @ 2024-03-31 12:08 aqi00 阅读(415) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(十一)Windows环境给FFmpeg集成vorbis和amr​FFmpeg内置了aac音频格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“5.2.2 Linux环境集成mp3lame”又介绍了如何给FFmpeg集成mp3格式,常见的音频文件除了这两种之外,还有ogg和amr两种格式也较常用。其中ogg格式的编解码依赖于libogg和libvor 阅读全文
posted @ 2024-04-05 12:25 aqi00 阅读(302) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(七)欧拉系统编译安装FFmpegFFmpeg支持Linux、macOS、Windows、Android等操作系统,其中Linux系列包括Ubuntu、Debian、Mint、CentOS、RHEL、Fedora等分支。FFmpeg官网的编译入口地址为https://trac.ffmpeg.org/wiki/CompilationG 阅读全文
posted @ 2024-03-23 10:56 aqi00 阅读(597) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(八)Linux交叉编译Android的FFmpeg库​《FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2 交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在Linux环境交叉编译Android所需FFmpeg的so库。 1、下载Linux版本的androi 阅读全文
posted @ 2024-03-24 12:45 aqi00 阅读(395) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(十二)Linux环境给FFmpeg集成libopus和libvpx​MP4是最常见的视频封装格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“1.2.3 自行编译与安装FFmpeg”介绍了如何给FFmpeg集成x264和x265两个库,从而支持H.264和H.265两种标准的编解码。 视频的封装格式除了古老的MP4和ASF之外,还有较新的WebM格式, 阅读全文
posted @ 2024-04-06 11:30 aqi00 阅读(621) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(十三)Windows环境给FFmpeg集成libopus和libvpx​MP4是最常见的视频封装格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“1.2.3 自行编译与安装FFmpeg”介绍了如何给FFmpeg集成x264和x265两个库,从而支持H.264和H.265两种标准的编解码。 视频的封装格式除了悠久的MP4和ASF之外,还有较新的WebM格式, 阅读全文
posted @ 2024-04-13 11:53 aqi00 阅读(440) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(十四)FFmpeg音频重采样的缓存​FFmpeg在很多地方都运用了缓存机制,比如《FFmpeg开发实战:从零基础到短视频上线》一书的“3.3.2 对视频流重新编码”介绍了编解码的数据缓存,不单是视频编码过程和视频解码过程有缓存,甚至连音频重采样都用到了缓存。 也就是说,重采样函数swr_convert一次只会输出指定长度的音频数据, 阅读全文
posted @ 2024-04-14 11:40 aqi00 阅读(359) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(十五)详解MediaMTX的推拉流​MediaMTX是个开源的轻量级流媒体服务器,它的安装过程参见《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”。MediaMTX下载后的压缩包包括可执行程序mediamtx.exe和配置文件mediamtx.yml,看起来非常简约,但它提供的流媒体服务一 阅读全文
posted @ 2024-04-20 11:35 aqi00 阅读(1144) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库​《FFmpeg开发实战:从零基础到短视频上线》一书的例程主要测试本地的音视频文件,当然为了安全起见,很多网络视频都采用了https地址。FFmpeg若要访问https视频,就必须集成第三方的openssl库,但编译FFmpeg时却默认关闭了openssl。为了让App能够播放采用https的在线视 阅读全文
posted @ 2024-04-21 11:56 aqi00 阅读(432) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass​libass是一个适用于ASS和SSA格式(Advanced Substation Alpha/Substation Alpha)的字幕渲染器,支持的字幕类型包括srt、ass等,凡是涉及到给视频画面添加字幕,均需事先集成libass。 《FFmpeg开发实战:从零基础到短视频上线》一书的“7.3 阅读全文
posted @ 2024-04-27 11:39 aqi00 阅读(641) 评论(2) 推荐(1)
摘要:FFmpeg开发笔记(十八)FFmpeg兼容各种音频格式的播放​FFmpeg结合SDL可以播放音频文件,也能播放视频文件中的音频流,《FFmpeg开发实战:从零基础到短视频上线》一书第10章的示例程序playaudio.c支持播放mp3和aac两种格式的音频,却不支持播放其他格式的音频。 因为mp3和aac两个格式拥有标准的规范定义,比如mp3规定每帧音频固定 阅读全文
posted @ 2024-05-04 11:40 aqi00 阅读(563) 评论(4) 推荐(1)
摘要:FFmpeg开发笔记(十九)FFmpeg开启两个线程分别解码音视频​同步播放音视频的时候,《FFmpeg开发实战:从零基础到短视频上线》一书第10章的示例程序playsync.c采取一边遍历一边播放的方式,在源文件的音频流和视频流交错读取的情况下,该方式可以很好地实现同步播放功能。 但个别格式的音频流和视频流是分开存储的,前面一大段放了所有的音频帧,后面一大段放了 阅读全文
posted @ 2024-05-05 11:46 aqi00 阅读(630) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器​AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准。AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制订工作,参考软件的测试表明,AVS3基准档次的性能比上一代标准AVS2和HEVC提升了约30%。 l 阅读全文
posted @ 2024-05-12 12:11 aqi00 阅读(497) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3解码器​AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准。AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制订工作,参考软件的测试表明,AVS3基准档次的性能比上一代标准AVS2和HEVC提升了约30%。 l 阅读全文
posted @ 2024-05-18 10:39 aqi00 阅读(513) 评论(0) 推荐(2)
摘要:FFmpeg开发笔记(二十二)FFmpeg中SAR与DAR的显示宽高比​《FFmpeg开发实战:从零基础到短视频上线》一书提到:通常情况下,在视频流解析之后,从AVCodecContext结构得到的宽高就是视频画面的宽高。然而有的视频文件并非如此,如果按照AVCodecContext设定的宽高展示视频,会发现画面被压扁或者拉长了。比如该书第10章源码playsync. 阅读全文
posted @ 2024-05-19 12:31 aqi00 阅读(342) 评论(2) 推荐(1)
摘要:FFmpeg开发笔记(二十三)使用OBS Studio开启RTMP直播推流​OBS是一个开源的直播录制软件,英文全称叫做Open Broadcaster Software,广泛用于视频录制、实时直播等领域。OBS不但开源,而且跨平台,兼容Windows、Mac OS、Linux等操作系统。 OBS的官网是https://obsproject.com/,录制软件名叫OBS 阅读全文
posted @ 2024-05-26 11:09 aqi00 阅读(1245) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器​AV1是一种新兴的免费视频编码标准,它由开放媒体联盟(Alliance for Open Media,简称AOM)于2018年制定,融合了Google VP10、Mozilla Daala以及Cisco Thor三款开源项目的成果。据说在实际测试中,AV1标准比H.265(HEVC)的压缩率提升了 阅读全文
posted @ 2024-05-27 13:16 aqi00 阅读(790) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(二十五)Linux环境给FFmpeg集成libwebp​《FFmpeg开发实战:从零基础到短视频上线》一书介绍了JPEG、PNG、GIF等图片格式,以及如何通过FFmpeg把视频画面转存为这些格式。除了上述这些常见的图片格式,还有较新的WebP格式,它由VP8视频标准派生而来,VP8演进的视频格式叫做WebM,图片格式则叫WebP。 若想让FFmpeg 阅读全文
posted @ 2024-06-01 12:16 aqi00 阅读(233) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(二十六)Linux环境安装ZLMediaKit实现视频推流​《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKi 阅读全文
posted @ 2024-06-02 12:07 aqi00 阅读(860) 评论(2) 推荐(0)
摘要:FFmpeg开发笔记(二十七)解决APP无法访问ZLMediaKit的直播链接问题​上一篇文章介绍了如何通过ZLMediaKit实现视频推拉流,并使用VLC播放器验证视频直播地址。即使不用VLC播放器,直接在Qt工程的C++代码中调用FFmpeg的API,也能访问ZLMediaKit的直播地址,并正常渲染视频画面。关于如何在Qt工程中引入FFmpeg,可参考《FFmpeg开发实战 阅读全文
posted @ 2024-06-08 11:51 aqi00 阅读(209) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid​XviD是个开源的视频编解码器,它与DivX一同被纳入MPEG-4规范第二部分的视频标准,但DivX并未开源。早期的MP4视频大多采用XviD或者DivX编码,当时的视频格式被称作MPEG-4。现在常见的H.264后来才增补到MPEG-4规范的第十部分,当然如今使用XviD压缩的视频已经不多了。 阅读全文
posted @ 2024-06-09 11:25 aqi00 阅读(327) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid​XviD是个开源的视频编解码器,它与DivX一同被纳入MPEG-4规范第二部分的视频标准,但DivX并未开源。早期的MP4视频大多采用XviD或者DivX编码,当时的视频格式被称作MPEG-4。现在常见的H.264后来才增补到MPEG-4规范的第十部分,当然如今使用XviD压缩的视频已经不多了。 阅读全文
posted @ 2024-06-15 12:02 aqi00 阅读(124) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(三十)解析H.264码流中的SPS帧和PPS帧​《FFmpeg开发实战:从零基础到短视频上线》一书的“2.1.1 音视频编码的发展历程”介绍了H.26x系列的视频编码标准,其中H.264至今仍在广泛使用,无论视频文件还是网络直播,H.264标准都占据着可观的市场份额。 之所以H.264取得了巨大的成功,是因为它提出了一个新概念,把标准框架划分为 阅读全文
posted @ 2024-06-16 11:41 aqi00 阅读(723) 评论(2) 推荐(3)
摘要:FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流​RTMP Streamer是一个安卓手机端的开源RTMP直播推流框架,可用于RTMP直播和RTSP直播,其升级版还支持SRT直播(腾讯视频云就采用SRT协议)。RTMP Streamer支持的视频编码包括H264、H265、AV1等等,支持的音频编码包括AAC、G711、OPUS等等,可谓功能强大 阅读全文
posted @ 2024-06-22 11:57 aqi00 阅读(453) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(三十二)利用RTMP协议构建电脑与手机的直播Demo不管是传统互联网还是移动互联网,实时数据传输都是刚需,比如以QQ、微信为代表的即时通信工具,能够实时传输文本和图片。其中一对一的图文通信叫做私聊,多对多的图文通信叫做群聊。 除了常见的图文即时通信,还有实时音视频通信,比如一对一的音频通话、一对一的视频通话等等,此时可采用WebRTC技术,有关Web 阅读全文
posted @ 2024-06-23 12:13 aqi00 阅读(444) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(三十三)分析ZLMediaKit对H.264流的插帧操作​《FFmpeg开发实战:从零基础到短视频上线》一书的“3.4.3 把原始的H264文件封装为MP4格式”介绍了如何把H.264裸流封装为MP4文件。那么在网络上传输的H.264裸流是怎样被接收端获取视频格式的呢?前文指出H.264流必定以“SPS帧→PPS帧→IDR帧”开头,接下来就来验证是否确实 阅读全文
posted @ 2024-06-29 14:57 aqi00 阅读(421) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist​《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有比较两种比较新的流媒体协议,分别是SRT和RIST。 其中SRT全称为Secure Reliable Transport,中文叫做安全可靠传 阅读全文
posted @ 2024-06-30 12:02 aqi00 阅读(406) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt​《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有比较两种比较新的流媒体协议,分别是SRT和RIST。 其中SRT全称为Secure Reliable Transport,中文叫做安全可靠传 阅读全文
posted @ 2024-07-06 13:26 aqi00 阅读(361) 评论(0) 推荐(2)
摘要:FFmpeg开发笔记(三十六)Linux环境安装SRS实现视频直播推流​《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKi 阅读全文
posted @ 2024-07-07 11:30 aqi00 阅读(493) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记全目录(FFmpeg开发实战详解,含直播系统的搭建过程)​记录下FFmpeg的学习笔记目录,完整的FFmpeg开发实战内容详见《FFmpeg开发实战:从零基础到短视频上线》一书。 下面是补充的FFmpeg开发笔记内容目录,主要是对《FFmpeg开发实战:从零基础到短视频上线》一书的进阶增补。 第一章 Linux环境编译FFmpeg FFmpeg开发笔记( 阅读全文
posted @ 2024-06-17 13:33 aqi00 阅读(907) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(三十七)分析SRS对HLS协议里TS包的插帧操作​《FFmpeg开发实战:从零基础到短视频上线》一书的“2.1.2 音视频文件的封装格式”介绍了视频流的PS格式和TS格式。由于TS包的长度固定,从TS流的任一片段开始都能独立解码,因此可以把TS当成音视频文件的封装格式。 鉴于TS包的独立解码特性,HLS协议引入了TS格式作为传输单元。HLS协议的 阅读全文
posted @ 2024-07-13 14:54 aqi00 阅读(174) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(三十八)APP如何访问SRS推流的RTMP直播地址​《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKi 阅读全文
posted @ 2024-07-14 11:27 aqi00 阅读(462) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg​《FFmpeg开发实战:从零基础到短视频上线》一书的“第11章 FFmpeg的桌面开发”介绍了如何在Windows环境对Qt结合FFmpeg实现桌面程序,那么Windows系统通过Visual Studio开发桌面程序也是很常见的,下面就介绍如何在Visual Studio的C++工程中集成FFm 阅读全文
posted @ 2024-07-20 11:20 aqi00 阅读(534) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”介绍了轻量级流媒体服务器MediaMTX,虽然MediaMTX使用很简单,可是不能满足复杂的业务需求,故而实际应用中需要引入专业的流媒体服务器。 nginx-rtmp是开源WEB服务器Nginx可增强的第三方 阅读全文
posted @ 2024-07-21 11:26 aqi00 阅读(435) 评论(2) 推荐(1)
摘要:FFmpeg开发笔记(四十一)结合OBS与MediaMTX实现SRT直播推流​《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有于2017年推出的SRT协议,相比常见的RTMP协议,SRT协议具有更低的延迟,并且消除了卡帧、抖动等花屏现象。腾讯视频云已经引入了SRT协 阅读全文
posted @ 2024-07-27 11:49 aqi00 阅读(584) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(四十二)使用ZLMediaKit开启SRT视频直播服务​《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKi 阅读全文
posted @ 2024-07-28 12:21 aqi00 阅读(574) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(四十三)使用SRS开启SRT协议的视频直播服务​《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKi 阅读全文
posted @ 2024-08-03 11:49 aqi00 阅读(675) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(四十四)毕业设计可做的几个拉满颜值的音视频APP​一年一度的毕业季就要到了,毕业设计算是大学生毕业前的最后一个大作业,尤其是计算机相关专业的毕业设计,通常要通过编程开发一个软件,比如开发一个图书馆管理系统,开发一个电商APP等等。 一个好的毕业设计可以给作者加分,可以评优,还能获得编程开发的实战经验,所以很有必要认真去做毕业设计。那么就计算机相关 阅读全文
posted @ 2024-08-04 11:44 aqi00 阅读(518) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流​SRT Streamer是一个安卓手机端的开源SRT协议直播推流框架,可用于RTMP直播和SRT直播。SRT Streamer支持的视频编码包括H264、H265等等,支持的音频编码包括AAC、OPUS等等,可谓功能强大的APP直播框架。 相比之下,另一款APP直播框架RTMP Streamer支 阅读全文
posted @ 2024-08-10 12:00 aqi00 阅读(484) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo​不管是传统互联网还是移动互联网,实时数据传输都是刚需,比如以QQ、微信为代表的即时通信工具,能够实时传输文本和图片。其中一对一的图文通信叫做私聊,多对多的图文通信叫做群聊。 除了常见的图文即时通信,还有实时音视频通信,比如一对一的音频通话、一对一的视频通话等等,此时可采用WebRTC技术,有关We 阅读全文
posted @ 2024-08-11 11:58 aqi00 阅读(418) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(四十七)寒冬下安卓程序员的几个技术转型发展方向​IT寒冬之下,程序员这个职业不再像以往那么吃香,尤其是APP开发的门槛越来越高,使得安卓程序员不得不求变,如果不在技术上及时转型提高,逆水行舟未来不可期呀。 有鉴于此,博主整理了几个可供安卓程序员的技术转型发展方向,供大家参考。 1、继续深耕Android的应用开发 谷歌爸爸是安卓的爹,要想继续吃 阅读全文
posted @ 2024-08-17 11:40 aqi00 阅读(974) 评论(5) 推荐(3)
摘要:FFmpeg开发笔记(四十八)从0开始搭建直播系统的开源软件架构​音视频技术的一个主要用途是直播,包括电视直播、电脑直播、手机直播等等,甚至在线课堂、在线问诊、安防监控等应用都属于直播系统的范畴。由于直播系统不仅涉及到音视频数据的编解码,还涉及到音视频数据的实时传输,因此直播领域采用的网络技术标准比较高,实现起来也比一般的WEB系统复杂。 一、直播系统的概念结构 阅读全文
posted @ 2024-08-18 11:22 aqi00 阅读(686) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP​对各高校即将毕业的学子来说,毕业设计算是在大学里的最后一个大作业。特别是软件、计算机、电子等相关专业,毕业设计非常讲究实操,往往要求实现一个实用的、可用的、易用的软件系统或手机APP。 不管是软件还是APP,都要通过编程来实现。对于编程类的毕业设计,既有图书馆管理系统这样万年不变的增删改查软件,也 阅读全文
posted @ 2024-08-31 11:17 aqi00 阅读(496) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(五十)聊聊几种流媒体传输技术的前世今生​自从互联网普及之后,用于视频直播的流媒体技术就发展起来。这几十年中,比较有影响的主要有MMS、RTSP、RTMP、HLS、SRT、RIST几种,分别介绍如下。 1、MMS协议 MMS全称Microsoft Multimedia Server,意思是微软多媒体服务器,它是微软公司在上世纪九十年代发布 阅读全文
posted @ 2024-09-01 11:53 aqi00 阅读(484) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(五十一)适合学习研究的几个音视频开源框架​很多程序员想学习音视频的编程开发,却不知从何学习,因为音视频技术的体系庞大、知识杂糅,一眼望去就令人生怯。那么学习音视频建议站在前人的肩膀上,从优秀的音视频开源框架开始钻研,先熟悉这些开源工具的具体用法,再深入了解这些开源框架的实现代码。 有鉴于此,博主整理了几个流行的音视频开源框架,分别对它们概 阅读全文
posted @ 2024-09-07 11:52 aqi00 阅读(308) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(五十二)移动端的国产视频播放器GSYVideoPlayer​GSYVideoPlayer是一个国产的移动端视频播放器,它采用了IJKPlayer、Media3(EXOPlayer)、MediaPlayer、AliPlayer等四种播放器内核,支持弹幕、滤镜、广告等多项功能。 GSYVideoPlayer的Github主页为https://github.co 阅读全文
posted @ 2024-09-08 11:36 aqi00 阅读(885) 评论(1) 推荐(0)
摘要:FFmpeg开发笔记(五十三)移动端的国产直播录制工具EasyPusher​EasyPusher是一款国产的RTSP直播录制推流客户端工具,它支持Windows、Linux、Android、iOS等操作系统。EasyPusher采用RTSP推流协议,其中安卓版EasyPusher的Github托管地址为https://github.com/EasyDarwin/EasyP 阅读全文
posted @ 2024-09-21 11:41 aqi00 阅读(451) 评论(0) 推荐(3)
摘要:FFmpeg开发笔记(五十四)使用EasyPusher实现移动端的RTSP直播​之前的文章《利用RTMP协议构建电脑与手机的直播Demo》介绍了如何使用RTMP Streamer实现完整的RTMP直播流程,另一篇文章《利用SRT协议构建手机APP的直播Demo》介绍了如何使用SRT Streamer实现完整的SRT直播流程,接下来介绍如何使用EasyPusher-Androi 阅读全文
posted @ 2024-09-22 11:38 aqi00 阅读(584) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势​喊了多年的互联网寒冬,今年的寒风格外凛冽,还在坚守安卓开发的朋友着实不容易。因为能转行的早就转了,能转岗的也早就转了,那么安卓程序员比较迷茫的就是,我该学什么安卓技术才好呢?还是直接扔了安卓再去搞别的技术吗? 下面探讨下安卓程序员还能在哪些方面进阶修炼,主要有以下三个方向。 一、纵向钻研谷歌爸爸推 阅读全文
posted @ 2024-10-12 13:30 aqi00 阅读(515) 评论(0) 推荐(2)
摘要:FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频​Android早期的MediaPlayer控件对于网络视频的兼容性很差,所以后来单独推出了Exoplayer库增强支持网络视频,在《Android Studio开发实战:从零基础到App上线(第3版)》一书第14章的“14.3.3 新型播放器ExoPlayer”就详细介绍了Exoplayer库的详 阅读全文
posted @ 2024-10-13 11:14 aqi00 阅读(664) 评论(0) 推荐(2)
摘要:FFmpeg开发笔记(五十七)使用Media3的Transformer加工视频文件​继音视频播放器ExoPlayer之后,谷歌又推出了音视频转换器Transformer,要在音视频加工领域施展拳脚。根据Android开发者官网介绍:Jetpack Media3是Android媒体库的新家,可让App呈现丰富的视听体验。Media3提供了一个简单的架构,能够基于设备功能开展自定义与 阅读全文
posted @ 2024-10-16 14:31 aqi00 阅读(327) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频​《FFmpeg开发实战:从零基础到短视频上线》一书的“5.1.2 把音频流保存为PCM文件”介绍了如何把媒体文件中的音频流转存为原始的PCM音频,在样例代码的转存过程中,解码后的PCM数据未经任何加工处理,就直接保存到二进制文件。也就是说,原音频的采样频率是多少,PCM文件的采样频率也是多少;原音 阅读全文
posted @ 2024-10-19 12:46 aqi00 阅读(522) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库ijkplayer是一款由B站研发的移动端国产播放器,它基于FFmpeg3.4版本,同时兼容Android和iOS两大移动操作系统。ijkplayer的源码托管地址为https://github.com/bilibili/ijkplayer,截止2024年9月15日,ijkplayer获得3.24万 阅读全文
posted @ 2024-10-23 13:29 aqi00 阅读(413) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频​ijkplayer是Bilibili公司(简称B站)基于FFmpeg3.4研发并开源的国产播放器,它可运行于Android和iOS系统,既支持播放本地视频文件,也支持播放网络上的流媒体链接。 之前的文章《Linux编译ijkplayer的Android平台so库》介绍了如何编译获得App工程所需i 阅读全文
posted @ 2024-10-26 11:59 aqi00 阅读(642) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(六十一)Linux给FFmpeg集成H.266编码器vvenc​《FFmpeg开发实战:从零基础到短视频上线》该书的第一章介绍了如何在Linux环境给FFmpeg集成H.264和H.265的编码器,如今H.266的编码器vvenc也日渐成熟,从7.1版本开始的最新FFmpeg源码已经支持H.266的编码器vvenc。 H.266是H.265的升级版本,H.26 阅读全文
posted @ 2025-05-25 12:57 aqi00 阅读(377) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(六十二)Windows给FFmpeg集成H.266编码器vvenc​《FFmpeg开发实战:从零基础到短视频上线》该书的第八章介绍了如何在Windows环境给FFmpeg集成H.264和H.265的编码器,如今H.266的编码器vvenc也日渐成熟,从7.1版本开始的最新FFmpeg源码已经支持H.266的编码器vvenc。 H.266是H.265的升级版本,H. 阅读全文
posted @ 2025-06-02 12:12 aqi00 阅读(265) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(六十三)FFmpeg使用vvenc把视频转为H.266编码​前面的两篇文章分别介绍了如何在Linux环境和Windows环境给FFmpeg集成H.266的编码器vvenc,接下来利用ffmpeg把视频文件转换为VVC格式,观察新生成的vvc视频能否正常播放。 确保Linux系统已经按照《FFmpeg开发实战:从零基础到短视频上线》该书第一章的“1.2 Li 阅读全文
posted @ 2025-06-07 13:10 aqi00 阅读(288) 评论(0) 推荐(3)
摘要:FFmpeg开发笔记(六十四)使用国产的RedPlayer播放器观看网络视频​RedPlayer是小红书基于FFmpeg4.3研发并开源的国产播放器,它可运行于Android和iOS系统,既支持播放本地视频文件,也支持播放网络上的流媒体链接。有关FFmpeg在Android平台的集成说明参见《FFmpeg开发实战:从零基础到短视频上线》一书的“第12章 FFmpeg的移动开 阅读全文
posted @ 2025-06-08 11:30 aqi00 阅读(271) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(六十五)Linux给FFmpeg集成LC3音频的编码器liblc3​《FFmpeg开发实战:从零基础到短视频上线》一书的第五章介绍了FFmpeg如何处理常见的MP3音频和AAC音频,其中MP3格式常用于音乐文件,而AAC格式常用于视频文件。 除此以外,近年又出现了专用于蓝牙音频的LC3格式,其全称是低复杂度通信编解码器(Low Complexity Communi 阅读全文
posted @ 2025-06-14 15:43 aqi00 阅读(129) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(六十六)Windows给FFmpeg集成LC3音频的编码器liblc3《FFmpeg开发实战:从零基础到短视频上线》一书的第五章介绍了FFmpeg如何处理常见的MP3音频和AAC音频,其中MP3格式常用于音乐文件,而AAC格式常用于视频文件。 除此以外,近年又出现了专用于蓝牙音频的LC3格式,其全称是低复杂度通信编解码器(Low Complexity Communic 阅读全文
posted @ 2025-06-15 11:41 aqi00 阅读(181) 评论(0) 推荐(2)
摘要:FFmpeg开发笔记(六十七)Windows给FFmpeg集成支持RIST协议的librist​《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有比较两种比较新的流媒体协议,分别是SRT和RIST。 其中SRT全称为Secure Reliable Transport,中文叫做安全可靠传 阅读全文
posted @ 2025-06-21 11:55 aqi00 阅读(158) 评论(0) 推荐(3)
摘要:FFmpeg开发笔记(六十八)Windows给FFmpeg集成AV1解码器libdav1d​AV1是一种新兴的免费视频编码标准,它由开放媒体联盟(Alliance for Open Media,简称AOM)于2018年制定,融合了Google VP10、Mozilla Daala以及Cisco Thor三款开源项目的成果。据说在实际测试中,AV1标准比H.265(HEVC)的压缩率提升了 阅读全文
posted @ 2025-06-22 12:22 aqi00 阅读(255) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(六十九)Windows给FFmpeg集成AV1编码器libaom​AV1是一种新兴的免费视频编码标准,它由开放媒体联盟(Alliance for Open Media,简称AOM)于2018年制定,融合了Google VP10、Mozilla Daala以及Cisco Thor三款开源项目的成果。据说在实际测试中,AV1标准比H.265(HEVC)的压缩率提升了 阅读全文
posted @ 2025-06-28 12:54 aqi00 阅读(158) 评论(0) 推荐(1)
摘要:FFmpeg开发笔记(七十)Windows给FFmpeg集成AV1编码器libsvtav1​AV1是一种新兴的免费视频编码标准,它由开放媒体联盟(Alliance for Open Media,简称AOM)于2018年制定,融合了Google VP10、Mozilla Daala以及Cisco Thor三款开源项目的成果。据说在实际测试中,AV1标准比H.265(HEVC)的压缩率提升了 阅读全文
posted @ 2025-06-29 12:56 aqi00 阅读(205) 评论(1) 推荐(0)
摘要:FFmpeg开发笔记(七十一)使用国产的QPlayer2实现双播放器观看视频​QPlayer2是七牛云基于FFmpeg6.1研发并开源的国产播放器,它可运行于Android和iOS系统,既支持播放本地视频文件,也支持播放网络上的流媒体链接。有关FFmpeg在Android平台的集成说明参见《FFmpeg开发实战:从零基础到短视频上线》一书的“第12章 FFmpeg的移动开发 阅读全文
posted @ 2025-07-05 12:36 aqi00 阅读(46) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(七十二)Linux给FFmpeg集成MPEG-5视频编解码器EVC​MPEG-5是新一代的国际音视频编解码标准,像我们熟悉的MP3、MP4等音视频格式就来自于MPEG系列。MP3格式的说明介绍参见《FFmpeg开发实战:从零基础到短视频上线》一书的“5.2 MP3音频”,MP4格式的说明介绍参见《FFmpeg开发实战:从零基础到短视频上线》一书的“2.1.2 音视 阅读全文
posted @ 2025-07-06 11:37 aqi00 阅读(197) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(七十三)Windows给FFmpeg集成MPEG-5视频编解码器​MPEG-5是新一代的国际音视频编解码标准,像我们熟悉的MP3、MP4等音视频格式就来自于MPEG系列。MP3格式的说明介绍参见《FFmpeg开发实战:从零基础到短视频上线》一书的“5.2 MP3音频”,MP4格式的说明介绍参见《FFmpeg开发实战:从零基础到短视频上线》一书的“2.1.2 音视 阅读全文
posted @ 2025-07-12 12:48 aqi00 阅读(149) 评论(0) 推荐(0)
摘要:FFmpeg开发笔记(七十四)Windows给FFmpeg集成二维码图像的编解码器​《FFmpeg开发实战:从零基础到短视频上线》一书的“7.1.1 添加图片标志”介绍了如何给视频添加图片标志,比如给视频画面添加一张二维码图像。不过前提条件是存在二维码图片,因为FFmpeg本身不支持根据文本生成二维码图像。幸而从FFmpeg 7.0开始,通过第三方的libqrencode和lib 阅读全文
posted @ 2025-07-13 11:52 aqi00 阅读(222) 评论(0) 推荐(0)