FFmpeg开发笔记(六十九)Windows给FFmpeg集成AV1编码器libaom
AV1是一种新兴的免费视频编码标准,它由开放媒体联盟(Alliance for Open Media,简称AOM)于2018年制定,融合了Google VP10、Mozilla Daala以及Cisco Thor三款开源项目的成果。据说在实际测试中,AV1标准比H.265(HEVC)的压缩率提升了 ...
FFmpeg开发笔记(六十八)Windows给FFmpeg集成AV1解码器libdav1d
AV1是一种新兴的免费视频编码标准,它由开放媒体联盟(Alliance for Open Media,简称AOM)于2018年制定,融合了Google VP10、Mozilla Daala以及Cisco Thor三款开源项目的成果。据说在实际测试中,AV1标准比H.265(HEVC)的压缩率提升了 ...
FFmpeg开发笔记(六十七)Windows给FFmpeg集成支持RIST协议的librist
《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有比较两种比较新的流媒体协议,分别是SRT和RIST。 其中SRT全称为Secure Reliable Transport,中文叫做安全可靠传 ...
FFmpeg开发笔记(六十六)Windows给FFmpeg集成LC3音频的编码器liblc3
《FFmpeg开发实战:从零基础到短视频上线》一书的第五章介绍了FFmpeg如何处理常见的MP3音频和AAC音频,其中MP3格式常用于音乐文件,而AAC格式常用于视频文件。 除此以外,近年又出现了专用于蓝牙音频的LC3格式,其全称是低复杂度通信编解码器(Low Complexity Communic ...
FFmpeg开发笔记(六十五)Linux给FFmpeg集成LC3音频的编码器liblc3
《FFmpeg开发实战:从零基础到短视频上线》一书的第五章介绍了FFmpeg如何处理常见的MP3音频和AAC音频,其中MP3格式常用于音乐文件,而AAC格式常用于视频文件。 除此以外,近年又出现了专用于蓝牙音频的LC3格式,其全称是低复杂度通信编解码器(Low Complexity Communi ...
Linux c 运行时获取动态库所在路径
记录一下如何在Linux环境下运行时获取动态库路径。 只讨论Linux amd64和arm64环境,因为使用的办法都是平台相关的不具备可移植性。 准备 一般来说动态库并不需要关心自己所在的文件系统上的路径,但业务有那么多总有一两个会有特殊需求。 现在给定一个动态库里的函数A,需求是要知道这个函数A是 ...
FFmpeg开发笔记(六十四)使用国产的RedPlayer播放器观看网络视频
RedPlayer是小红书基于FFmpeg4.3研发并开源的国产播放器,它可运行于Android和iOS系统,既支持播放本地视频文件,也支持播放网络上的流媒体链接。有关FFmpeg在Android平台的集成说明参见《FFmpeg开发实战:从零基础到短视频上线》一书的“第12章 FFmpeg的移动开 ...
FFmpeg开发笔记(六十三)FFmpeg使用vvenc把视频转为H.266编码
前面的两篇文章分别介绍了如何在Linux环境和Windows环境给FFmpeg集成H.266的编码器vvenc,接下来利用ffmpeg把视频文件转换为VVC格式,观察新生成的vvc视频能否正常播放。 确保Linux系统已经按照《FFmpeg开发实战:从零基础到短视频上线》该书第一章的“1.2 Li ...
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. ...
select和poll
select函数 原理 select通过一个文件描述符集合(fd_set)来监控多个文件描述符。它会检查这些文件描述符是否准备好进行读、写或异常操作。fd_set是一个位数组,每个位对应一个文件描述符。select会扫描这个数组,检查每个文件描述符的状态。 使用方法 使用FD_SET宏将文件描述符添 ...
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 ...
HTTP协议-获取天气-使用JSON
在使用http获取到天气信息之后,使用JSON对获取到的天气信息进行解析,解析出温度数据 /************************************************************************** * * 设计http程序,客户端向心知天气发送获取天气的请 ...
HTTP-获取天气-dns版
直接使用心知天气的域名获取天气信息,并将温度信息转换成整型输出 /************************************************************************** * * 设计http程序,客户端向心知天气发送获取天气的请求,并解析出收到的温度数据 ...
C语言做题知识点总结
目录C语言做题易错及知识点总结重要!!!负数在计算机中的存储:重要!!!计算机内部的存储特殊情况128变量范围man手册的使用重要!!! 格式化输出(1) 标志字符 (必须放在%说明符后面)(2) 转换精度(3)长度修饰(4) 转换说明转义字符的输出需要加\1. 用双反斜杠 \ 输出单个反斜杠2. ...
线程相关函数-信号量
POSIX信号量 信号量分为匿名信号量和具名信号量两种 匿名信号量 sem_init函数 该函数可以对POSIX匿名信号量进行初始化。 int sem_init(sem_t *sem,int pshared,unsigned int value) //sem:由sem指向的匿名信号量的地址 //ps ...
线程相关函数-读写锁
读写锁 ptehread_rwlock_init函数 此函数可以对一个读写锁进行初始化操作 pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER int ptehread_rwlock_init(pthread_rwlock_t *rwlock , ...
信号量结合共享内存练习
设计程序,进程A专门创建一个信号量集,要求信号量集中有1个信号量,对信号量集合中的信号量进行设置,要求集合中的信号量的初值为1,然后再设计2个程序,分别是进程B和进程C,要求进程B和进程C使用进程A创建的信号量集合中的信号量实现互斥访问。进程B对变量进行+1操作,写入共享内存,进程C读取共享内存的数 ...