SF
FFmpeg开发实战
FFmpeg开发实战
注册登录
关注博客
注册登录
主页
关于
RSS
FFmpeg开发笔记(三十)解析H.264码流中的SPS帧和PPS帧
aqi00
2024-06-20
阅读 2 分钟
1.1k
《FFmpeg开发实战:从零基础到短视频上线》一书的“2.1.1 音视频编码的发展历程”介绍了H.26x系列的视频编码标准,其中H.264至今仍在广泛使用,无论视频文件还是网络直播,H.264标准都占据着可观的市场份额。
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
aqi00
2024-06-17
阅读 2 分钟
521
XviD是个开源的视频编解码器,它与DivX一同被纳入MPEG-4规范第二部分的视频标准,但DivX并未开源。早期的MP4视频大多采用XviD或者DivX编码,当时的视频格式被称作MPEG-4。现在常见的H.264后来才增补到MPEG-4规范的第十部分,当然如今使用XviD压缩的视频已经不多了。
FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
aqi00
2024-06-14
阅读 2 分钟
480
XviD是个开源的视频编解码器,它与DivX一同被纳入MPEG-4规范第二部分的视频标准,但DivX并未开源。早期的MP4视频大多采用XviD或者DivX编码,当时的视频格式被称作MPEG-4。现在常见的H.264后来才增补到MPEG-4规范的第十部分,当然如今使用XviD压缩的视频已经不多了。
FFmpeg开发笔记(二十七)解决APP无法访问ZLMediaKit的直播链接问题
aqi00
2024-06-11
阅读 4 分钟
593
上一篇文章介绍了如何通过ZLMediaKit实现视频推拉流,并使用VLC播放器验证视频直播地址。即使不用VLC播放器,直接在Qt工程的C++代码中调用FFmpeg的API,也能访问ZLMediaKit的直播地址,并正常渲染视频画面。关于如何在Qt工程中引入FFmpeg,可参考《FFmpeg开发实战:从零基础到短视频上线》一书的“第11章 FFmpeg的桌面...
FFmpeg开发笔记(二十六)Linux环境安装ZLMediaKit实现视频推流
aqi00
2024-06-08
阅读 3 分钟
767
《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKit。
FFmpeg开发笔记(二十五)Linux环境给FFmpeg集成libwebp
aqi00
2024-06-05
阅读 2 分钟
522
《FFmpeg开发实战:从零基础到短视频上线》一书介绍了JPEG、PNG、GIF等图片格式,以及如何通过FFmpeg把视频画面转存为这些格式。除了上述这些常见的图片格式,还有较新的WebP格式,它由VP8视频标准派生而来,VP8演进的视频格式叫做WebM,图片格式则叫WebP。
FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
aqi00
2024-06-02
阅读 3 分钟
698
AV1是一种新兴的免费视频编码标准,它由开放媒体联盟(Alliance for Open Media,简称AOM)于2018年制定,融合了Google VP10、Mozilla Daala以及Cisco Thor三款开源项目的成果。据说在实际测试中,AV1标准比H.265(HEVC)的压缩率提升了大约27%。由于AV1具有性能优势,并且还是免费授权,因此各大流媒体平台更倾向使用A...
FFmpeg开发笔记(二十三)使用OBS Studio开启RTMP直播推流
aqi00
2024-06-01
阅读 2 分钟
658
OBS是一个开源的直播录制软件,英文全称叫做Open Broadcaster Software,广泛用于视频录制、实时直播等领域。OBS不但开源,而且跨平台,兼容Windows、Mac OS、Linux等操作系统。
FFmpeg开发笔记(二十二)FFmpeg中SAR与DAR的显示宽高比
aqi00
2024-05-30
阅读 3 分钟
607
《FFmpeg开发实战:从零基础到短视频上线》一书提到:通常情况下,在视频流解析之后,从AVCodecContext结构得到的宽高就是视频画面的宽高。然而有的视频文件并非如此,如果按照AVCodecContext设定的宽高展示视频,会发现画面被压扁或者拉长了。比如该书第10章源码playsync.c在播放meg.vob时的视频画面如下图所示:
FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3解码器
aqi00
2024-05-27
阅读 4 分钟
581
AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准。AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制订工作,参考软件的测试表明,AVS3基准档次的性能比上一代标准AVS2和HEVC提升了约30%。
FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器
aqi00
2024-05-26
阅读 2 分钟
594
AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准。AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制订工作,参考软件的测试表明,AVS3基准档次的性能比上一代标准AVS2和HEVC提升了约30%。
FFmpeg开发笔记(十九)FFmpeg开启两个线程分别解码音视频
aqi00
2024-05-24
阅读 4 分钟
596
同步播放音视频的时候,《FFmpeg开发实战:从零基础到短视频上线》一书第10章的示例程序playsync.c采取一边遍历一边播放的方式,在源文件的音频流和视频流交错读取的情况下,该方式可以很好地实现同步播放功能。
FFmpeg开发笔记(十八)FFmpeg兼容各种音频格式的播放
aqi00
2024-05-21
阅读 3 分钟
451
FFmpeg结合SDL可以播放音频文件,也能播放视频文件中的音频流,《FFmpeg开发实战:从零基础到短视频上线》一书第10章的示例程序playaudio.c支持播放mp3和aac两种格式的音频,却不支持播放其他格式的音频。
FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
aqi00
2024-05-19
阅读 7 分钟
434
libass是一个适用于ASS和SSA格式(Advanced Substation Alpha/Substation Alpha)的字幕渲染器,支持的字幕类型包括srt、ass等,凡是涉及到给视频画面添加字幕,均需事先集成libass。
FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
aqi00
2024-05-18
阅读 2 分钟
231
《FFmpeg开发实战:从零基础到短视频上线》一书的例程主要测试本地的音视频文件,当然为了安全起见,很多网络视频都采用了https地址。FFmpeg若要访问https视频,就必须集成第三方的openssl库,但编译FFmpeg时却默认关闭了openssl。为了让App能够播放采用https的在线视频,需要编译安装并启用openssl。
FFmpeg开发笔记(十五)详解MediaMTX的推拉流
aqi00
2024-05-16
阅读 2 分钟
532
MediaMTX是个开源的轻量级流媒体服务器,它的安装过程参见《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”。MediaMTX下载后的压缩包包括可执行程序mediamtx.exe和配置文件mediamtx.yml,看起来非常简约,但它提供的流媒体服务一点也没缩水。双击mediamtx.exe,MediaMTX弹出一个命令行窗口,...
FFmpeg开发笔记(十四)FFmpeg音频重采样的缓存
aqi00
2024-05-13
阅读 2 分钟
300
FFmpeg在很多地方都运用了缓存机制,比如《FFmpeg开发实战:从零基础到短视频上线》一书的“3.3.2 对视频流重新编码”介绍了编解码的数据缓存,不单是视频编码过程和视频解码过程有缓存,甚至连音频重采样都用到了缓存。
FFmpeg开发笔记(十三)Windows环境给FFmpeg集成libopus和libvpx
aqi00
2024-05-12
阅读 3 分钟
357
MP4是最常见的视频封装格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“1.2.3 自行编译与安装FFmpeg”介绍了如何给FFmpeg集成x264和x265两个库,从而支持H.264和H.265两种标准的编解码。
FFmpeg开发笔记(十二)Linux环境给FFmpeg集成libopus和libvpx
aqi00
2024-05-11
阅读 2 分钟
616
MP4是最常见的视频封装格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“1.2.3 自行编译与安装FFmpeg”介绍了如何给FFmpeg集成x264和x265两个库,从而支持H.264和H.265两种标准的编解码。
FFmpeg开发笔记(十一)Windows环境给FFmpeg集成vorbis和amr
aqi00
2024-05-10
阅读 4 分钟
328
FFmpeg内置了aac音频格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“5.2.2 Linux环境集成mp3lame”又介绍了如何给FFmpeg集成mp3格式,常见的音频文件除了这两种之外,还有ogg和amr两种格式也较常用。其中ogg格式的编解码依赖于libogg和libvorbis,而amr格式的编解码依赖于opencore-amr。前文介绍了在Linux环...
FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr
aqi00
2024-05-07
阅读 3 分钟
293
FFmpeg内置了aac音频格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“5.2.2 Linux环境集成mp3lame”又介绍了如何给FFmpeg集成mp3格式,常见的音频文件除了这两种之外,还有ogg和amr两种格式也较常用。其中ogg格式的编解码依赖于libogg和libvorbis,而amr格式的编解码依赖于opencore-amr。因此要先安装编译这三...
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
aqi00
2024-05-05
阅读 3 分钟
432
《FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2 交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,前文又介绍了如何在Linux环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在Linux环境交叉编译Android所需x265的so库。
FFmpeg开发笔记(八)Linux交叉编译Android的FFmpeg库
aqi00
2024-05-04
阅读 2 分钟
382
《FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2 交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在Linux环境交叉编译Android所需FFmpeg的so库。
FFmpeg开发笔记(七)欧拉系统编译安装FFmpeg
aqi00
2024-05-01
阅读 5 分钟
471
FFmpeg支持Linux、macOS、Windows、Android等操作系统,其中Linux系列包括Ubuntu、Debian、Mint、CentOS、RHEL、Fedora等分支。FFmpeg官网的编译入口地址为[链接],在这里可以找到FFmpeg对各系统的编译说明。更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。
FFmpeg开发笔记(六)如何访问Github下载FFmpeg源码
aqi00
2024-04-28
阅读 2 分钟
399
学习FFmpeg的时候,经常要到GitHub下载各种开源代码,比如FFmpeg的源码页面位于[链接]。然而国内访问GitHub很不稳定,经常打不开该网站,比如在命令行执行下面的ping命令。
FFmpeg开发笔记(五)更新MSYS的密钥环
aqi00
2024-04-27
阅读 3 分钟
255
《FFmpeg开发实战:从零基础到短视频上线》一书提到:使用MSYS对FFmpeg进行交叉编译时,需要事先安装交叉编译工具链,也就是执行下面命令。
FFmpeg开发笔记(四)FFmpeg的动态链接库介绍
aqi00
2024-04-21
阅读 2 分钟
382
FFmpeg不仅提供了ffmpeg、ffplay和ffprobe三个可执行程序,还提供了八个工具库,使得开发者能够调用库里面的函数,从而实现更精准的定制化开发需求。这八个库的名字是avcodec、avdevice、avfilter、avformat、avutil、postproc、swresample、swscale,下面分别对这些库展开介绍。更多详细的FFmpeg开发知识参见《FFmpeg开...
FFmpeg开发笔记(三)FFmpeg的可执行程序介绍
aqi00
2024-04-21
阅读 3 分钟
398
外界对于FFmpeg主要有两种使用途径,一种是在命令行运行FFmpeg的可执行程序,该方式适合没什么特殊要求的普通场景;另一种是通过代码调用FFmpeg的动态链接库,由于开发者可以在C代码中编排个性化的逻辑,因此该方式适合厂商专用的特制场景。更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。
FFmpeg开发笔记(二)搭建Windows系统的开发环境
aqi00
2024-04-21
阅读 2 分钟
512
由于Linux系统比较专业,个人电脑很少安装Linux,反而大都安装Windows系统,因此提高了FFmpeg的学习门槛,毕竟在Windows系统搭建FFmpeg的开发环境还是比较麻烦的。不过若有已经编译好的Windows版本FFmpeg开发包,那就免去了繁琐的Windows编译过程,所以直接安装已编译的FFmpeg开发包,还是相对容易的。在Windows系统安装...
FFmpeg开发笔记(一)搭建Linux系统的开发环境
aqi00
2024-04-20
阅读 3 分钟
778
对于初学者来说,如何搭建FFmpeg的开发环境是个不小的拦路虎,因为FFmpeg用到了许多第三方开发包,所以要先编译这些第三方源码,之后才能给FFmpeg集成编译好的第三方库。不过考虑到刚开始仅仅调用FFmpeg的API,不会马上去改FFmpeg的源码,因此只要给系统安装编译好的FFmpeg动态库,即可着手编写简单的FFmpeg程序。比如这...
1
2
(current)
上一页
2
(current)
下一页