ffmpeg中MP4的解复用过程
来源:互联网 发布:linux mysql5.7 重启 编辑:程序博客网 时间:2024/05/16 05:58
主要流程
1.在s->io_open()中创建了URLContext和它的prot成员(URLProtcol)。其中URLProtcol对应的协议为file;
其中MP4的URLProtcol为:
const URLProtocol ff_file_protocol = { .name = "file", .url_open = file_open, .url_read = file_read, .url_write = file_write, .url_seek = file_seek, .url_close = file_close, .url_get_file_handle = file_get_handle, .url_check = file_check, .url_delete = file_delete, .url_move = file_move, .priv_data_size = sizeof(FileContext), .priv_data_class = &file_class, .url_open_dir = file_open_dir, .url_read_dir = file_read_dir, .url_close_dir = file_close_dir, .default_whitelist = "file,crypto"};
在libformate/file.c文件中。
2.在av_probe_input_buffer2()中判断出AVInputFormat:
3.av_probe_input_format3()函数:
4.mp4对应的read_probe为mov_probe(),在mov.c文件中;
MP4对应的AVFormatContext
AVInputFormat ff_mov_demuxer = { .name = "mov,mp4,m4a,3gp,3g2,mj2", .long_name = NULL_IF_CONFIG_SMALL("QuickTime / MOV"), .priv_class = &mov_class, .priv_data_size = sizeof(MOVContext), .extensions = "mov,mp4,m4a,3gp,3g2,mj2", .read_probe = mov_probe, .read_header = mov_read_header, .read_packet = mov_read_packet, .read_close = mov_read_close, .read_seek = mov_read_seek, .flags = AVFMT_NO_BYTE_SEEK,};
4.在s->iformat->read_header(s),实际为mov_read_header()中,创建MP4文件的AVStream:
0 0
- ffmpeg中MP4的解复用过程
- FFmpeg解复用MP4
- ffmpeg从MP4中提取h264的NALU
- 关于从ffmpeg中分离mp4 muxer
- ffmpeg添加MP4的pcm音频支持
- 基于FFmpeg的封装格式MP4(TS)
- ffmpeg转换mp4到flv的命令
- ffmpeg录制屏幕,生成MP4视频文件开发过程
- [施工中]CentOS5.7 安装 FFMPEG转码MP4
- 通过 FFMPEG,将字幕“烧进”MP4视频中
- 在Andorid中使用FFmpeg实现YUV编码为MP4
- ffmpeg demux mp4
- ffmpeg MP4转TS
- FFmpeg压缩MP4视频
- ffmpeg合并mp4视频
- ffmpeg转mp4格式
- ios ffmpeg 保存mp4
- ffmpeg mkv转mp4
- 宠物商店开发
- VS2008工程不清晰
- 第一次来,做个标记
- html创建多类型的有序列表
- 总结3
- ffmpeg中MP4的解复用过程
- 【Maven学习】Maven打包生成包含所有依赖的jar包
- System Verilog视频学习笔记(7)- OOP-Virtual Interface
- POJ 1128 Frame Stacking 笔记
- 宠物商店项目分析
- HALCON初步:HDevelop导出C++程序到VS 2013
- 【cocos2dx】简单增加3D精灵
- html有序列表起始值
- 产生冠军(杭电ACM2094)