使用ffmpeg步骤
2024-08-25 09:59:02
av_register_all();
//初始化ffmpeg库,如果系统里面的ffmpeg没配置好这里会出错
if
(isNetwork) {
//需要播放网络视频
avformat_network_init();
}
avformat_open_input();
//打开视频文件
avformat_find_stream_info();
//查找文件的流信息
av_dump_format();
//dump只是个调试函数,输出文件的音、视频流的基本信息了,帧率、分辨率、音频采样等等
for
(...);
//遍历文件的各个流,找到第一个视频流,并记录该流的编码信息
sws_getContext();
//根据编码信息设置渲染格式
avcodec_find_decoder();
//在库里面查找支持该格式的解码器
avcodec_open2();
//打开解码器
pFrame=avcodec_alloc_frame();
//分配一个帧指针,指向解码后的原始帧
pFrameRGB=avcodec_alloc_frame();
//分配一个帧指针,指向存放转换成RGB后的帧
avpicture_fill(pFrameRGB);
//给pFrameRGB帧加上分配的内存;
while
(
true
)
{
av_read_frame();
//读取一个帧(到最后帧则break)
avcodec_decode_video2();
//解码该帧
sws_getCachedContext()sws_scale();
//把该帧转换(渲染)成RGB
SaveFrame();
//对前5帧保存成ppm图形文件(这个是自定义函数,非API)
av_free_packet();
//释放本次读取的帧内存
}
最新文章
- jQuery中10个非常有用的遍历函数
- UIScrollView之轮转图片
- 关于 HTTP 请求头的内容
- TEXT宏,TCHAR类型
- [HTML]background-size可以缩放大小
- activity退出
- Windows 10 IoT Core Samples
- [转]反向代理过程与Nginx特点详解
- ubuntu vim YouComlpeteMe配置
- C++实现Http Post请求
- Twitter Bootstrap JavaScript插件
- c++ 类覆盖方法中的协变返回类型
- POJ1006-Biorhythms
- .Net Core中Dapper的使用详解
- day16 Python map函数
- Intent 传递数据
- 上传本地代码到github&;&;从github下载源码
- Logstash使用jdbc同步MySQL中的数据
- 【upstream】Nginx配置upstream实现负载均衡
- 【洛谷】【堆+贪心】P1484 种树