FFMpeg 小试
来源:互联网 发布:伴奏制作软件手机软件 编辑:程序博客网 时间:2024/06/08 10:09
目前调试思路是:JNI导入源码,然后找到入口Main函数,使用PC 平台的命令输入,然后顺着命令来阅读代码,目前能执行 视频合成 视频分拆等常用命令,封装成一个JNI调用,下一步再阅读源码,进行一个业务的流程整合;
开始部分代码 是解释命令,后面的 ffmpeg.c 中的static int transcode(void) 方法才是真正的转码函数
参照 http://blog.csdn.net/leixiaohua1020/article/category/1360795/3
图片合成视频
1、ffmpeg_parse_options方法;
2、open_input_file方法;
3、libavformat\utils.c avformat_find_stream_info 方法,因为是图片,而不是视频,所以走这个方法;
4、libavformat\utils.c read_frame_internal 方法;
5、libavformat\utils.c ff_read_packet;
6、在ff_read_packet 中执行了 AVFormatContext 的回调函数 s->iformat->read_packet(s, pkt); read_packet,赋值于 img2dec.c ff_img_read_packet方法;
7、libavformat\img2dec.c ff_img_read_packet(); 中执行 io_open 的回调函数;
8、options.c avformat_get_context_defaults()中 把io_open 的回调函数io_open_default 赋值了;
9、options.c io_open_default() 调用 ffio_open_whitelist;
10、aviobuf.c ffio_open_whitelist(); 调用了 ffurl_open_whitelist,再有一个 ffio_fdopen 方法,在里面 新建了 *s = avio_alloc_context(buffer, buffer_size, h->flags & AVIO_FLAG_WRITE,
internal, io_read_packet, io_write_packet, io_seek); 注意回调方法 io_read_packet,这个就是读取字节到AVIOContext 的地方
11、avio.c ffurl_open_whitelist();
12、avio.c ffurl_connect(); 调用了 url_open 的回调函数 在 libavformat\file.c 中ff_file_protocol赋值了;
13、url.h (*url_open);
14、libavformat\file.c->url_open();
- FFMpeg 小试
- ffmpeg小抄
- ffmpeg一些小实验
- FFmpeg浅尝辄止(三)——小试视频解码
- FFmpeg浅尝辄止(三)——小试视频解码
- FFmpeg浅尝辄止(三)——小试视频解码
- FFmpeg浅尝辄止(三)——小试视频解码
- ffmpeg 解码视频小例子
- ffmpeg的一点小知识
- ffmpeg 解码视频小例子
- ffmpeg仿微信录制小视频
- ffmpeg和Mencoder使用实例小全
- ffmpeg和Mencoder使用实例小全
- ffmpeg和Mencoder使用实例小全
- 几个常用的FFmpeg小技巧
- FFMPEG源码分析——小改动
- 几个常用的FFmpeg小技巧
- 开始使用ffmpeg做一点小项目
- Opengl学习程序之绘制命令
- Sql查询原理与Select执行顺序(详细)
- for
- (五十五)高并发服务器——多路IO转接机制epoll模型
- maven核心,pom.xml详解
- FFMpeg 小试
- 自定义控件(仿PopupWindow篇)
- [总结] Linux关闭防火墙命令
- [BZOJ3143][Hnoi2013]游走(概率期望+高斯消元)
- IdentityHashMap :key值可以重复的Map集合
- Python学习--12 异常处理、调试
- 用mybatis进行批量删除
- 升级Xcode8真机测试无法打印
- APNs消息推送开发流程图(证书创建)图解