合集-FFmpeg开发实战

摘要:FFmpeg开发笔记(一)搭建Linux系统的开发环境对于初学者来说,如何搭建FFmpeg的开发环境是个不小的拦路虎,因为FFmpeg用到了许多第三方开发包,所以要先编译这些第三方源码,之后才能给FFmpeg集成编译好的第三方库。 不过考虑到刚开始仅仅调用FFmpeg的API,不会马上去改FFmpeg的源码,因此只要给系统安装编译好的FFmpeg动态库,即可着手编写简单的FFmpeg程序。 阅读全文
posted @ 2023-04-16 19:02 aqi00 阅读(1578) 评论(0) 推荐(0) 编辑
摘要:FFmpeg开发笔记(二)搭建Windows系统的开发环境由于Linux系统比较专业,个人电脑很少安装Linux,反而大都安装Windows系统,因此提高了FFmpeg的学习门槛,毕竟在Windows系统搭建FFmpeg的开发环境还是比较麻烦的。不过若有已经编译好的Windows版本FFmpeg开发包,那就免去了繁琐的Windows编译过程,所以直接安装已 阅读全文
posted @ 2023-04-29 11:29 aqi00 阅读(682) 评论(0) 推荐(0) 编辑
摘要:FFmpeg开发笔记(三)FFmpeg的可执行程序介绍​外界对于FFmpeg主要有两种使用途径,一种是在命令行运行FFmpeg的可执行程序,该方式适合没什么特殊要求的普通场景;另一种是通过代码调用FFmpeg的动态链接库,由于开发者可以在C代码中编排个性化的逻辑,因此该方式适合厂商专用的特制场景。更多详细的FFmpeg开发知识参见《FFmpeg开发实战 阅读全文
posted @ 2024-03-09 16:26 aqi00 阅读(457) 评论(0) 推荐(0) 编辑
摘要:FFmpeg开发笔记(四)FFmpeg的动态链接库介绍FFmpeg不仅提供了ffmpeg、ffplay和ffprobe三个可执行程序,还提供了八个工具库,使得开发者能够调用库里面的函数,从而实现更精准的定制化开发需求。这八个库的名字是avcodec、avdevice、avfilter、avformat、avutil、postproc、swresampl 阅读全文
posted @ 2024-03-10 11:33 aqi00 阅读(315) 评论(0) 推荐(0) 编辑
摘要:FFmpeg开发笔记(五)更新MSYS的密钥环​ 《FFmpeg开发实战:从零基础到短视频上线》一书提到:使用MSYS对FFmpeg进行交叉编译时,需要事先安装交叉编译工具链,也就是执行下面命令。 pacman -S mingw-w64-x86_64-toolchain 一般情况可以正常安装交叉编译工具链,不过有时会提示错误“signature 阅读全文
posted @ 2024-03-16 18:33 aqi00 阅读(193) 评论(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 阅读(216) 评论(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 阅读(463) 评论(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 阅读(298) 评论(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 阅读(161) 评论(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 阅读(348) 评论(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 阅读(161) 评论(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 阅读(324) 评论(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 阅读(121) 评论(0) 推荐(0) 编辑
摘要:FFmpeg开发笔记(十四)FFmpeg音频重采样的缓存​FFmpeg在很多地方都运用了缓存机制,比如《FFmpeg开发实战:从零基础到短视频上线》一书的“3.3.2 对视频流重新编码”介绍了编解码的数据缓存,不单是视频编码过程和视频解码过程有缓存,甚至连音频重采样都用到了缓存。 也就是说,重采样函数swr_convert一次只会输出指定长度的音频数据, 阅读全文
posted @ 2024-04-14 11:40 aqi00 阅读(211) 评论(0) 推荐(0) 编辑
摘要:FFmpeg开发笔记(十五)详解MediaMTX的推拉流​MediaMTX是个开源的轻量级流媒体服务器,它的安装过程参见《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”。MediaMTX下载后的压缩包包括可执行程序mediamtx.exe和配置文件mediamtx.yml,看起来非常简约,但它提供的流媒体服务一 阅读全文
posted @ 2024-04-20 11:35 aqi00 阅读(548) 评论(0) 推荐(0) 编辑
摘要:FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库​《FFmpeg开发实战:从零基础到短视频上线》一书的例程主要测试本地的音视频文件,当然为了安全起见,很多网络视频都采用了https地址。FFmpeg若要访问https视频,就必须集成第三方的openssl库,但编译FFmpeg时却默认关闭了openssl。为了让App能够播放采用https的在线视 阅读全文
posted @ 2024-04-21 11:56 aqi00 阅读(345) 评论(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 阅读(412) 评论(2) 推荐(1) 编辑
摘要:FFmpeg开发笔记(十八)FFmpeg兼容各种音频格式的播放​FFmpeg结合SDL可以播放音频文件,也能播放视频文件中的音频流,《FFmpeg开发实战:从零基础到短视频上线》一书第10章的示例程序playaudio.c支持播放mp3和aac两种格式的音频,却不支持播放其他格式的音频。 因为mp3和aac两个格式拥有标准的规范定义,比如mp3规定每帧音频固定 阅读全文
posted @ 2024-05-04 11:40 aqi00 阅读(410) 评论(4) 推荐(1) 编辑
摘要:FFmpeg开发笔记(十九)FFmpeg开启两个线程分别解码音视频​同步播放音视频的时候,《FFmpeg开发实战:从零基础到短视频上线》一书第10章的示例程序playsync.c采取一边遍历一边播放的方式,在源文件的音频流和视频流交错读取的情况下,该方式可以很好地实现同步播放功能。 但个别格式的音频流和视频流是分开存储的,前面一大段放了所有的音频帧,后面一大段放了 阅读全文
posted @ 2024-05-05 11:46 aqi00 阅读(496) 评论(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 阅读(328) 评论(0) 推荐(1) 编辑