- 博客(325)
- 资源 (85)
- 收藏
- 关注
原创 FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
XviD是个开源的视频编解码器,它与DivX一同被纳入MPEG-4规范第二部分的视频标准,但DivX并未开源。早期的MP4视频大多采用XviD或者DivX编码,当时的视频格式被称作MPEG-4。现在常见的H.264后来才增补到MPEG-4规范的第十部分,下面就介绍如何在Windows环境给FFmpeg集成XviD的编解码库libxvid。
2024-05-21 08:00:00 454
原创 FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
XviD是个开源的视频编解码器,它与DivX一同被纳入MPEG-4规范第二部分的视频标准,但DivX并未开源。早期的MP4视频大多采用XviD或者DivX编码,当时的视频格式被称作MPEG-4。现在常见的H.264后来才增补到MPEG-4规范的第十部分,当然如今使用XviD压缩的视频已经不多了。
2024-05-16 08:00:00 277
原创 FFmpeg开发笔记(二十七)解决APP无法访问ZLMediaKit的直播链接问题
如果手机APP不走FFmpeg,通过其他途径访问直播地址之时,却发现无法播放ZLMediaKit的HLS直播地址http://124.***.***.***:8080/live/test/hls.m3u8。无论采用谷歌官方的ExoPlayer,还是采用微信小程序的video标签,都播放不了ZLMediaKit的HLS视频。
2024-05-13 08:00:00 483 4
原创 FFmpeg开发笔记(二十六)Linux环境安装ZLMediaKit实现视频推流
ZLMediaKit是一款国产的开源流媒体服务器,它基于C++11开发,支持多种流媒体协议(RTSP/RTMP/HLS/WebRTC等等),支持的音视频编码标准包括H265、H264、AAC、G711、OPUS等。通过结合FFmpeg与ZLMediaKit,可以很方便地测试音视频的推拉流。
2024-05-10 08:00:00 1273
原创 FFmpeg开发笔记(二十五)Linux环境给FFmpeg集成libwebp
《FFmpeg开发实战:从零基础到短视频上线》一书介绍了JPEG、PNG、GIF等图片格式,以及如何通过FFmpeg把视频画面转存为这些格式。除了上述这些常见的图片格式,还有较新的WebP格式,它由VP8视频标准派生而来,VP8演进的视频格式叫做WebM,图片格式则叫WebP。若想让FFmpeg支持WebP图片的编解码,就要给它集成第三方库libwebp。
2024-05-07 08:00:00 301
原创 FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
AV1是一种新兴的免费视频编码标准,它由开放媒体联盟(Alliance for Open Media,简称AOM)于2018年制定,融合了Google VP10、Mozilla Daala以及Cisco Thor三款开源项目的成果。据说在实际测试中,AV1标准比H.265(HEVC)的压缩率提升了大约27%。由于AV1具有性能优势,并且还是免费授权,因此各大流媒体平台更倾向使用AV1而非HEVC标准。
2024-05-04 08:00:00 991
原创 FFmpeg开发笔记(二十三)使用OBS Studio开启RTMP直播推流
OBS是一个开源的直播录制软件,英文全称叫做Open Broadcaster Software,广泛用于视频录制、实时直播等领域。OBS不但开源,而且跨平台,兼容Windows、Mac OS、Linux等操作系统。OBS的官网是https://obsproject.com/,录制软件名叫OBS Studio,它基于QT+FFmpeg编码。
2024-05-01 08:00:00 1155
原创 【春日赠书】《FFmpeg开发实战:从零基础到短视频上线》上市赠书啦
FFmpeg开发实战:从零基础到短视频上线》与FFmpeg有关的C代码都基于FFmpeg 5.1.2编写,其中前10章的C/C++代码在Linux(包括EulerOS和CentOS)与Windows(包括Win10和Win11)上面编译和调试通过;值此《FFmpeg开发实战:从零基础到短视频上线》出版上架之际,即日起特推出送书活动,凡购买《FFmpeg开发实战:从零基础到短视频上线》且符合下列条件的朋友,可获赠图书《Android App开发入门与项目实战》一本。,先到先得,送完为止;
2024-04-28 08:00:00 548
原创 FFmpeg开发笔记(二十二)FFmpeg中SAR与DAR的显示宽高比
《FFmpeg开发实战:从零基础到短视频上线》一书提到:通常情况下,在视频流解析之后,从AVCodecContext结构得到的宽高就是视频画面的宽高。然而有的视频文件并非如此,如果按照AVCodecContext设定的宽高展示视频,会发现画面被压扁或者拉长了。
2024-04-25 08:00:00 559 1
原创 FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3解码器
libuavs3d是AVS3标准的解码器,最高可支持8K/60P视频实时解码,支持windows/linux/arm/ios等所有常用平台,在移动端最高支持4K/30fps视频实时解码,解码速度大幅领先AV1开源解码器dav1d和aomdec。
2024-04-22 08:00:00 929
原创 FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器
AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准。本文介绍如何给FFmpeg集成AVS3的解码器libuavs3d。
2024-04-19 08:00:00 440
原创 FFmpeg开发笔记(十九)FFmpeg开启两个线程分别解码音视频
同步播放音视频的时候,《FFmpeg开发实战:从零基础到短视频上线》一书第10章的示例程序playsync.c采取一边遍历一边播放的方式,在源文件的音频流和视频流交错读取的情况下,该方式可以很好地实现同步播放功能。
2024-04-16 08:00:00 757 10
原创 【送书活动】《FFmpeg开发实战:从零基础到短视频上线》迎新送书啦
其中,第1~5章是基础部分,主要讲解FFmpeg的环境搭建、FFmpeg的开发基础、FFmpeg的编解码、FFmpeg处理图像和FFmpeg处理音频;值此《FFmpeg开发实战:从零基础到短视频上线》出版上架之际,即日起特推出送书活动,凡购买《FFmpeg开发实战:从零基础到短视频上线》且符合下列条件的朋友,可获赠图书《Android App开发进阶与项目实战》一本。《FFmpeg开发实战:从零基础到短视频上线》随书提供了9大实战项目,其中包括卡拉OK音乐短片、桌面影音播放器、仿剪映的视频剪辑等实用工具。
2024-04-13 08:00:00 615 7
原创 FFmpeg开发笔记(十八)FFmpeg兼容各种音频格式的播放
FFmpeg结合SDL可以播放音频文件,也能播放视频文件中的音频流,《FFmpeg开发实战:从零基础到短视频上线》一书第10章的示例程序playaudio.c支持播放mp3和aac两种格式的音频,却不支持播放其他格式的音频。因为mp3和aac两个格式拥有标准的规范定义,比如mp3规定每帧音频固定包含1152个样本,而aac规定每帧音频固定包含1024个样本。
2024-04-10 08:00:00 361
原创 FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
libass是一个适用于ASS和SSA格式的字幕渲染器,支持的字幕类型包括srt、ass等,凡是涉及到给视频画面添加字幕,均需事先集成libass。下面介绍如何在Windows环境给FFmpeg集成libass。
2024-04-07 08:00:00 774
原创 FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
FFmpeg若要访问https视频,就必须集成第三方的openssl库,但编译FFmpeg时却默认关闭了openssl。为了让App能够播放采用https的在线视频,需要编译安装并启用openssl。
2024-04-04 08:00:00 444
原创 《FFmpeg开发实战:从零基础到短视频上线》出版后记
有鉴于此,笔者苦心钻研FFmpeg编程,从初学者的角度出发,编写了这本由浅入深的FFmpeg入门书籍《FFmpeg开发实战:从零基础到短视频上线》,该书最后两章专门论述了如何利用FFmpeg开发桌面程序和手机APP。
2024-04-01 08:00:00 565 2
原创 FFmpeg开发笔记(十五)详解MediaMTX的推拉流
MediaMTX是个开源的轻量级流媒体服务器,它的压缩包包括可执行程序mediamtx.exe和配置文件mediamtx.yml,看起来非常简约,但它提供的流媒体服务一点也没缩水。
2024-03-29 08:00:00 1627
原创 FFmpeg开发笔记(十四)音频重采样的缓存
FFmpeg在很多地方都运用了缓存机制,不单是视频编码过程和视频解码过程有缓存,甚至连音频重采样都用到了缓存。
2024-03-26 08:00:00 287
原创 FFmpeg开发笔记(十三)Windows环境给FFmpeg集成libopus和libvpx
Opus的编解码库为libopus,VP8和VP9的编解码库为libvpx。前文介绍了在Linux环境给FFmpeg集成libopus和libvpx,接下来介绍如何在Windows环境给FFmpeg集成libopus和libvpx。
2024-03-23 08:00:00 1028
原创 FFmpeg开发笔记(十二)Linux环境给FFmpeg集成libopus和libvpx
视频的封装格式除了古老的MP4和ASF之外,还有较新的WebM格式,该格式的音频编码主要采用Opus,视频编码采用VP8或者VP9。其中Opus的编解码库为libopus,VP8和VP9的编解码库为libvpx。
2024-03-20 08:00:00 445
原创 FFmpeg开发笔记(十一)Windows环境给FFmpeg集成vorbis和amr
ogg格式的编解码依赖于libogg和libvorbis,而amr格式的编解码依赖于opencore-amr。前文介绍了在Linux环境给FFmpeg集成vorbis和amr,接下来介绍如何在Windows环境给FFmpeg集成vorbis和amr。
2024-03-16 08:00:00 961 2
原创 FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr
FFmpeg内置了aac音频格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“5.2.2 Linux环境集成mp3lame”又介绍了如何给FFmpeg集成mp3格式,常见的音频文件除了这两种之外,还有ogg和amr两种格式也较常用。
2024-03-13 08:00:00 974
原创 FFmpeg开发笔记(九)Linux交叉编译Android的x265库
FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2 交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,前文又介绍了如何在Linux环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在Linux环境交叉编译Android所需x265的so库。
2024-03-10 08:00:00 1493 11
原创 FFmpeg开发笔记(八)Linux交叉编译Android的FFmpeg库
《FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2 交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在Linux环境交叉编译Android所需FFmpeg的so库。
2024-03-07 08:00:00 509
原创 FFmpeg开发笔记(七)欧拉系统编译安装FFmpeg
FFmpeg支持Linux、macOS、Windows、Android等系统,其中Linux系列包括Ubuntu、Debian、Mint、CentOS、RHEL、Fedora等。欧拉系统基于CentOS的源码开发,运行环境兼容CentOS。
2023-12-25 08:30:00 1232
原创 FFmpeg开发笔记(六)如何访问Github下载FFmpeg源码
学习FFmpeg的时候,经常要到GitHub下载各种开源代码,比如FFmpeg的源码页面位于https://github.com/FFmpeg/FFmpeg。然而国内访问GitHub很不稳定,经常打不开该网站,比如在命令行执行下面的ping命令。上面的ping结果如下所示,可见默认解析的DNS地址连接超时。现在GitHub的DNS请求超时,使得其上的开源代码无法下载,严重影响了FFmpeg的学习运用。要想避免无法访问GitHub的问题,可以通过以下三个办法解决。
2023-12-03 08:30:00 1651
原创 FFmpeg开发笔记(五)更新MSYS的密钥环
比如找到msys2-keyring的最新文件为msys2-keyring-1~20231013-1-any.pkg.tar.zst和msys2-keyring-1~20231013-1-any.pkg.tar.zst.sig,于是执行下面命令将这两个签名文件下载到本地。根据上述的密钥环有效信息,得知“david.macek.0@gmail.com”对应的密钥环将于2024-04-10到期,可见密钥环的有效期果然往后延长了150天(从当天开始往后150天,不是对上个失效日期简单相加)。
2023-11-27 08:15:00 813
原创 FFmpeg开发笔记(四)FFmpeg的动态链接库介绍
FFmpeg不仅提供了ffmpeg、ffplay和ffprobe三个可执行程序,还提供了八个工具库,使得开发者能够调用库里面的函数,从而实现更精准的定制化开发需求。这八个库的名字是avcodec、avdevice、avfilter、avformat、avutil、postproc、swresample、swscale。
2023-04-23 08:00:00 988
原创 FFmpeg开发笔记(三)FFmpeg的可执行程序介绍
外界对于FFmpeg主要有两种使用途径,一种是在命令行运行FFmpeg的可执行程序,该方式适合没什么特殊要求的普通场景;另一种是通过代码调用FFmpeg的动态链接库,由于开发者可以在C代码中编排个性化的逻辑,因此该方式适合厂商专用的特制场景。
2023-04-22 16:30:00 1082
原创 FFmpeg开发笔记(二)搭建Windows系统的开发环境
由于Linux系统比较专业,个人电脑很少安装Linux,反而大都安装Windows系统,因此提高了FFmpeg的学习门槛,毕竟在Windows系统搭建FFmpeg的开发环境还是比较麻烦的。不过若有已经编译好的Windows版本FFmpeg开发包,那就免去了繁琐的Windows编译过程,所以直接安装已编译的FFmpeg开发包,还是相对容易的。在Windows系统安装FFmpeg之前,要先安装MSYS2。
2023-04-17 08:00:00 652
原创 FFmpeg开发笔记(一)搭建Linux系统的开发环境
对于初学者来说,如何搭建FFmpeg的开发环境是个不小的拦路虎,因为FFmpeg用到了许多第三方开发包,所以要先编译这些第三方源码,之后才能给FFmpeg集成编译好的第三方库。不过考虑到刚开始仅仅调用FFmpeg的API,不会马上去改FFmpeg的源码,因此只要给系统安装编译好的FFmpeg动态库,即可着手编写简单的FFmpeg程序。比如这个网站提供了已经编译通过的FFmpeg开发包,囊括Linux、Windows等系统环境的开发版本。
2023-04-14 08:00:00 1316
原创 Android开发笔记(一百九十)增强了日志功能的第二版Logcat
从Android Studio Dolphin开始,查看应用日志的Logcat全面升级,堪称Logcat 2.0版本。下面就让我们看看LogcatV2.0究竟带来了什么新特性吧。对于Android Studio的老用户来说,小海豚版本新出的LogcatV2.0在用法上有不小的差异,一开始会让人比较茫然。有些老用户可能更习惯之前的Logcat,可以通过以下办法关闭LogcatV2.0,重新启用旧的Logcat功能。
2022-12-30 08:00:00 1252
转载 参加CSDN编程竞赛,赢取《Android Studio开发实战:从零基础到App上线(第3版)》 实体书
《Android Studio开发实战:从零基础到App上线(第3版)》是一部Android开发的实战教程,由浅入深、由基础到高级,带领读者一步一步走进App开发的神奇世界。参加CSDN编程竞赛,排名第 1 - 3 名的参赛者可获得欧阳燊老师@aqi00赞助的亲笔签名实体书《Android Studio开发实战:从零基础到App上线(第3版)》× 1。
2022-12-01 08:00:00 875 1
原创 《Android Studio开发实战 从零基础到App上线(第3版)》出版后记
可以这么说,《Android Studio开发实战 从零基础到App上线(第3版)》是国内第一本基于Android12和Android Studio Dolphin编写的安卓书籍,因此第3版的读者学到的就是目前最新的安卓开发。第3版还着力描述了App开发的几个热门方向,例如在线直播涉及到的WebRTC、WebSocket、原始音频、视频通话等,人工智能涉及到的语音识别、语音合成、人脸识别、活体检测等,物联网涉及到的NFC、红外、低功耗蓝牙、快速扫码等。现在看第3版的图书,学习安卓开发就更方便了。
2022-11-20 13:03:30 3899 4
原创 Android开发笔记(一百八十九)利用LAME录制MP3音频
无论是普通音频的amr和aac格式,还是原始音频的pcm格式,都不能在电脑上直接播放,也不能在苹果手机上播放,因为它们属于安卓手机的定制格式,并非通用的音频格式。若想让录音文件放之四海而皆能播放,就得事先将其转为通用的MP3格式,虽然Android官方的开发包不支持MP3转换,不过借助第三方的LAME库,能够将原始音频转存为MP3文件。
2022-11-07 08:00:00 1494 4
原创 Android开发笔记(一百八十八)工作管理器WorkManager
Android11不光废弃了AsyncTask,还把IntentService一起废掉了,对于后台的异步服务,官方建议改为使用工作管理器WorkManager。其实除了IntentService之外,Android也提供了其它后台任务工具,例如工作调度器JobScheduler、闹钟管理器AlarmManager等等。当然这些后台工具的用法各不相同,徒增开发者的学习时间而已,于是乎谷歌索性把它们统一起来,在Jetpack库中推出了工作管理器WorkManager。
2022-10-25 08:00:00 1809
原创 Android开发笔记(一百八十七)利用估值器实现弹幕动画
如今上网看电影电视越发流行了,追剧的时候经常看到视频上方数行评论向左边飘去,犹如子弹那样飞快掠过,这些评论文字因此得名“弹幕”。弹幕评论由正在观看的网友们即兴发表,故而连绵不绝从画面右端不断涌现,直到漂至画面左端才隐没消失。
2022-09-21 01:00:00 527
原创 Android开发笔记(一百八十六)管理SQLite的利器——应用检查器App Inspection
从Android Studio Bumblebee开始,Android Studio正式全面开启了数据库管理功能。首先确保已经安装了最新版的Android Studio Bumblebee,打开电脑上的Android Studio,并通过USB数据线连接待调试的设备(设备上同时启动待调试的应用)。然后依次选择菜单“View”→“Tool Windows”→“App Inspection”,Android Studio界面下方会弹出“App Inspection”窗口。...
2022-09-01 14:00:00 2521
原创 Android开发笔记(一百八十五)使用设备浏览器Device File Explorer导出存储卡的文件
只要打开了手机的USB调试功能,还是有办法拿到测试应用的数据文件。在上图所示的窗口中依次展开各级目录,一路进到/data/data/com.example.chapter06/shared_prefs,在该目录下看到了参数文件share.xml。
2022-08-15 01:00:00 1309
Android使用更多更好看图像控件的代码例子
2016-09-06
Android使用列表弹窗的代码例子
2016-09-05
Android操作工具栏Toolbar的代码例子
2016-09-05
Android对图片进行特效处理的代码例子
2016-09-01
Android自定义Drawable的代码例子
2016-08-31
Android对多语言支持的代码例子
2016-08-30
Android兼容5.0水波动画的代码例子
2016-08-30
Android对屏幕规格适配的代码例子
2016-08-30
Android对资源和权限进行校验的代码例子
2016-08-29
Android上传文件的代码例子
2016-08-29
Android对运行时状态检查的代码例子
2016-08-29
Android使用任务调度JobScheduler的代码例子
2017-05-11
Android浏览书籍的层叠翻页动画效果
2017-05-04
Android读取ppt和pdf文件的代码例子
2017-04-16
Android读取并显示word文件的代码例子
2017-04-09
Android实现可定制可滑动的标签栏的代码例子
2017-04-09
Android使用截图和录屏功能的代码例子
2017-03-24
Android使用文本输入布局TextInputLayout的代码例子
2017-03-15
Android自定义行为Behavior的代码例子
2017-03-08
Android使用协调布局CoordinatorLayout的代码例子
2017-02-27
Android使用可折叠工具栏布局CollapsingToolbarLayout的代码例子
2017-02-24
Android使用应用栏布局AppBarLayout的代码例子
2017-02-24
Android使用导航视图NavigationView的代码例子
2017-02-24
Android使用水波图形和矢量图形的代码例子
2017-02-09
Android使用提示窗Snackbar的代码例子
2017-02-09
Android校验手机制式适配的代码例子
2017-02-09
Android使用变换图形的代码例子
2017-02-09
Android自定义音乐播放器的代码例子
2016-09-20
Android自定义视频播放器的代码例子
2016-09-12
Android自带的循环器视图RecyclerView的代码例子
2016-09-02
Android自带的两个侧滑布局的代码例子
2016-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人