公司网站年费,公司设计平面图,免费引流推广工具,保定企业网站制作前提 前面我们学习了 将YUV数据读取到AVFrame#xff0c;然后将AVFrame通过 h264编码器变成 AVPacket后#xff0c;然后将avpacket直接存储到了本地就变成了h264文件。
这一节课#xff0c;学习解码的一部分。我们需要将 本地存储的h264文件进行帧分隔#xff0c;也就是变…前提 前面我们学习了 将YUV数据读取到AVFrame然后将AVFrame通过 h264编码器变成 AVPacket后然后将avpacket直接存储到了本地就变成了h264文件。
这一节课学习解码的一部分。我们需要将 本地存储的h264文件进行帧分隔也就是变成avpacket前面直接将avpacket存储就能变成h264文件那么为什么h264文件需要进行帧分隔才能变成avpacket 呢 这其实很容易理解我在编码的时候由于h264编码器在将avframe变成avpacket的时候就是按照h264的格式进行编码的因此存储下来的就是一个一个的h264格式的编码结构(也就是NALU结构)因此一个avpacket就是一个NALU或者多个NALU那么直接存储成h264文件是OK的。 那么如果是我们本地的h264文件要转化成avpacket我们需要通过 读取文件的形式 将 h264中的一段数据先读取到内存然后将这段内存转化成avpacket。
问题
读取多少内存才刚好是一个avpacket呢
如果不是h264而是h265文件呢
实际上这个avpacket的大小是不好定义的更加明确的说明应该是 avpacket中的data 和size 到底是多大是不好定义的。 ffmpeg 的解决方案: ffmpeg指定一块内存比如4096个字节。
每次从h264文件中都读取4096个字节。
然后通过 解析器 来解析这段内存假设第一个avpacket大小为10000不够一个avpacket这时候怎么办呢实际上 解析器内部是有缓存的不够10000个字节就不生成avpacket还是会读取10000个字节到 解析器内部的缓存。
然后循环再去读 h264文件的下一个4096字节直到够了10000个字节就会生成一个avpacket。 假设中间的第一个avpacket大小为100那么4096个字节中可能有多个avpacket因此在读取4096字节后解析器会找到该4096中的第一个avpacket还需要有一个循环该循环就是从剩下的3996个字节在解析 循环的时候会减去一个avpacket的大小然后将指针指向减去avpacket大小的位置再去解析 剩下来的 内存。 代码 mian.cpp
#include iostream
#include fstream
using namespace std;
extern C {#include libavcodec/avcodec.h
}char* const h264filename (char* const)1920_1080_25.h264;//我们的目的是从 h264文件中 截取avpacket也就是对h264进行帧分隔
int main(int argc, const char *argv[]) {ifstream ifs ifstream(h264filename,ios_base::binary);cout main start endl;//找到解码器AVCodec* avcodec avcodec_find_decoder(AV_CODEC_ID_H264);//找到解码器上下文AVCodecContext* avcodecContext avcodec_alloc_context3(avcodec);//找到解析器上下文AVCodecParserContext* avcodecParserContext av_parser_init(AV_CODEC_ID_H264);//打开解码器上下文avcodec_open2(avcodecContext, NULL, NULL);//这里要加一个 AV_INPUT_BUFFER_PADDING_SIZE是为了某些解码器的buf fix是ffmepg的要求但是不会给 AV_INPUT_BUFFER_PADDING_SIZE 中写入数据unsigned char buf[4096 AV_INPUT_BUFFER_PADDING_SIZE] { 0 };AVPacket *avpacket av_packet_alloc();while (!ifs.eof()) {ifs.read((char *)buf, 4096);//打算每次从h264文件中读取4096个字节int realbufreadcount ifs.gcount(); // 真正读取的字节数if (realbufreadcount0) { //如果读取的数据是0的说明整个h264文件已经读取完成了或者读取h264文件的时候出现了错误了那么就要直接退出cout 已经读取到h264文件的最后 endl;break;}//需要对真正读取的字节数进行解析有可能这4096个字节中有多个avpacket//因此要有一个判断决定是否解析完毕了这4096个字节.//这个判断条件就是 读取到的字节数的复制体。int parsebufcount realbufreadcount;int parseret 0;auto tempbuf buf;//让 tempbuf 指向 buf的指针。这里为什么不直接用buf呢从功能实现上直接用buf也是可以的但是这是C语言的基本功尽量不要用原始指针。而是找一个复制的指针。while (parsebufcount 0 ) {///av_parser_parse2方法解析了多少个字节从那个指针开始解析第五个参数解析多少个字节第六个参数parseret av_parser_parse2(avcodecParserContext,avcodecContext,avpacket-data,avpacket-size,tempbuf,parsebufcount,AV_NOPTS_VALUE,AV_NOPTS_VALUE,0);cout realbufreadcount realbufreadcount parseret parseret avpacket-size avpacket-size endl;parsebufcount parsebufcount - parseret; //将解析过的字节减去tempbuf tempbuf - parseret;//将指针指向还没有解析过的字节的最开始//如果packet的size是大于0的说明是正常截取了一段avpacket数据if (avpacket-size 0 ) {//如果avpacket 的size 大于0说明已经有了avpacket了也就是说到这里已经对h264进行了分离得到了avpacket// 那么下来我们就需要将 对avpacket进行处理 todo//avpacket数据变成avframe}}}if (ifs) {ifs.close();}if (avpacket!nullptr) {av_packet_free(avpacket);}if (avcodecParserContext ! nullptr) {av_parser_close(avcodecParserContext);}if (avcodecContext ! nullptr) {avcodec_free_context(avcodecContext);}
} 运行结果
main start
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 1393 avpacket-size 30065
realbufreadcount 4096 parseret 2703 avpacket-size 0
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 297 avpacket-size 3000
realbufreadcount 4096 parseret 594 avpacket-size 594
realbufreadcount 4096 parseret 1188 avpacket-size 1188
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 528 avpacket-size 528
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 1056 avpacket-size 1056
realbufreadcount 4096 parseret 433 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 1612 avpacket-size 18429
realbufreadcount 4096 parseret 2484 avpacket-size 0
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 956 avpacket-size 3440
realbufreadcount 4096 parseret 1912 avpacket-size 1912
realbufreadcount 4096 parseret 1228 avpacket-size 0
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 255 avpacket-size 1483
realbufreadcount 4096 parseret 752 avpacket-size 752
realbufreadcount 4096 parseret 1504 avpacket-size 1504
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 960 avpacket-size 960
realbufreadcount 4096 parseret 625 avpacket-size 0
realbufreadcount 4096 parseret 1393 avpacket-size 2018
realbufreadcount 4096 parseret 2703 avpacket-size 0
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 3390 avpacket-size 6093
realbufreadcount 4096 parseret 706 avpacket-size 0
realbufreadcount 4096 parseret 3097 avpacket-size 3803
realbufreadcount 4096 parseret 999 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 3993 avpacket-size 13184
realbufreadcount 4096 parseret 103 avpacket-size 0
realbufreadcount 4096 parseret 2962 avpacket-size 3065
realbufreadcount 4096 parseret 1134 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 1960 avpacket-size 7190
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 409 avpacket-size 409
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 818 avpacket-size 818
realbufreadcount 4096 parseret 909 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 2940 avpacket-size 12041
realbufreadcount 4096 parseret 1156 avpacket-size 0
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 487 avpacket-size 1643
realbufreadcount 4096 parseret 3609 avpacket-size 0
realbufreadcount 4096 parseret 2448 avpacket-size 6057
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 897 avpacket-size 897
realbufreadcount 4096 parseret 751 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 460 avpacket-size 5307
realbufreadcount 4096 parseret 920 avpacket-size 920
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 1840 avpacket-size 1840
realbufreadcount 4096 parseret 876 avpacket-size 0
realbufreadcount 4096 parseret 2296 avpacket-size 3172
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 745 avpacket-size 745
realbufreadcount 4096 parseret 1055 avpacket-size 0
realbufreadcount 4096 parseret 3746 avpacket-size 4801
realbufreadcount 4096 parseret 350 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 2298 avpacket-size 6744
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 747 avpacket-size 747
realbufreadcount 4096 parseret 1051 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 380 avpacket-size 9623
realbufreadcount 4096 parseret 1053 avpacket-size 1053
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 2106 avpacket-size 2106
realbufreadcount 4096 parseret 557 avpacket-size 0
realbufreadcount 4096 parseret 2197 avpacket-size 2754
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 646 avpacket-size 646
realbufreadcount 4096 parseret 1253 avpacket-size 0
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 3277 avpacket-size 4530
realbufreadcount 4096 parseret 819 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 2107 avpacket-size 7022
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 556 avpacket-size 556
[h264 017D6740] non-existing PPS 1 referenced
realbufreadcount 4096 parseret 1112 avpacket-size 1112
realbufreadcount 4096 parseret 321 avpacket-size 0
[h264 017D6740] non-existing PPS 127 referenced
realbufreadcount 4096 parseret 283 avpacket-size 604
realbufreadcount 4096 parseret 3813 avpacket-size 0
realbufreadcount 4096 parseret 2298 avpacket-size 6111
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 747 avpacket-size 747
realbufreadcount 4096 parseret 1051 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 337 avpacket-size 5484
realbufreadcount 4096 parseret 967 avpacket-size 967
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 1934 avpacket-size 1934
realbufreadcount 4096 parseret 858 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 3922 avpacket-size 8876
realbufreadcount 4096 parseret 150 avpacket-size 150
realbufreadcount 4096 parseret 24 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 1655 avpacket-size 5775
realbufreadcount 4096 parseret 2441 avpacket-size 0
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 1471 avpacket-size 3912
realbufreadcount 4096 parseret 2625 avpacket-size 0
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 3177 avpacket-size 5802
realbufreadcount 4096 parseret 919 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 436 avpacket-size 5451
realbufreadcount 4096 parseret 872 avpacket-size 872
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 1744 avpacket-size 1744
realbufreadcount 4096 parseret 1044 avpacket-size 0
realbufreadcount 4096 parseret 2981 avpacket-size 4025
realbufreadcount 4096 parseret 1115 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 3134 avpacket-size 8345
realbufreadcount 4096 parseret 962 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 1134 avpacket-size 6192
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 2268 avpacket-size 2268
realbufreadcount 4096 parseret 694 avpacket-size 0
realbufreadcount 4096 parseret 2872 avpacket-size 3566
realbufreadcount 4096 parseret 1224 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 766 avpacket-size 6086
realbufreadcount 4096 parseret 1852 avpacket-size 1852
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 1067 avpacket-size 1067
realbufreadcount 4096 parseret 411 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 2142 avpacket-size 6649
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 591 avpacket-size 591
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 1182 avpacket-size 1182
realbufreadcount 4096 parseret 143 avpacket-size 143
realbufreadcount 4096 parseret 38 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 16 avpacket-size 4150
realbufreadcount 4096 parseret 329 avpacket-size 329
realbufreadcount 4096 parseret 658 avpacket-size 658
realbufreadcount 4096 parseret 1316 avpacket-size 1316
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 768 avpacket-size 768
realbufreadcount 4096 parseret 1009 avpacket-size 0
realbufreadcount 4096 parseret 1189 avpacket-size 2198
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 2378 avpacket-size 2378
realbufreadcount 4096 parseret 529 avpacket-size 0
realbufreadcount 4096 parseret 3621 avpacket-size 4150
realbufreadcount 4096 parseret 475 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 3932 avpacket-size 8503
realbufreadcount 4096 parseret 164 avpacket-size 0
realbufreadcount 4096 parseret 0 avpacket-size 160
[h264 017D6740] non-existing PPS 2 referenced
realbufreadcount 4096 parseret 109 avpacket-size 113
realbufreadcount 4096 parseret 511 avpacket-size 511
realbufreadcount 4096 parseret 1022 avpacket-size 1022
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 2044 avpacket-size 2044
realbufreadcount 4096 parseret 410 avpacket-size 0
realbufreadcount 4096 parseret 1913 avpacket-size 2323
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 362 avpacket-size 362
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 724 avpacket-size 724
realbufreadcount 4096 parseret 1097 avpacket-size 0
realbufreadcount 4096 parseret 3498 avpacket-size 4595
realbufreadcount 4096 parseret 598 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 1626 avpacket-size 6320
realbufreadcount 4096 parseret 2470 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 2310 avpacket-size 8876
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 759 avpacket-size 759
realbufreadcount 4096 parseret 1027 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 981 avpacket-size 10200
realbufreadcount 4096 parseret 2326 avpacket-size 2326
realbufreadcount 4096 parseret 789 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 1160 avpacket-size 6045
realbufreadcount 4096 parseret 2936 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 1034 avpacket-size 8066
realbufreadcount 4096 parseret 3062 avpacket-size 0
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 2286 avpacket-size 5348
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 735 avpacket-size 735
realbufreadcount 4096 parseret 1075 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 462 avpacket-size 5633
realbufreadcount 4096 parseret 924 avpacket-size 924
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 1848 avpacket-size 1848
realbufreadcount 4096 parseret 862 avpacket-size 0
realbufreadcount 4096 parseret 2596 avpacket-size 3458
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 1045 avpacket-size 1045
realbufreadcount 4096 parseret 455 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 620 avpacket-size 5171
realbufreadcount 4096 parseret 1240 avpacket-size 1240
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 309 avpacket-size 309
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 618 avpacket-size 618
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 1236 avpacket-size 1236
realbufreadcount 4096 parseret 73 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 3233 avpacket-size 7402
realbufreadcount 4096 parseret 863 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 967 avpacket-size 10022
realbufreadcount 4096 parseret 3129 avpacket-size 0
realbufreadcount 4096 parseret 1010 avpacket-size 4139
realbufreadcount 4096 parseret 2306 avpacket-size 2306
realbufreadcount 4096 parseret 780 avpacket-size 0
realbufreadcount 4096 parseret 3158 avpacket-size 3938
realbufreadcount 4096 parseret 938 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 3040 avpacket-size 12170
realbufreadcount 4096 parseret 1056 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 2174 avpacket-size 11422
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 623 avpacket-size 623
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 1246 avpacket-size 1246
realbufreadcount 4096 parseret 53 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 2431 avpacket-size 6580
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 880 avpacket-size 880
realbufreadcount 4096 parseret 785 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 1181 avpacket-size 10158
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 2362 avpacket-size 2362
realbufreadcount 4096 parseret 553 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 324 avpacket-size 13165
realbufreadcount 4096 parseret 3772 avpacket-size 0
realbufreadcount 4096 parseret 1810 avpacket-size 5582
realbufreadcount 4096 parseret 2286 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 3615 avpacket-size 9997
realbufreadcount 4096 parseret 481 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 1004 avpacket-size 9677
realbufreadcount 4096 parseret 2388 avpacket-size 2388
realbufreadcount 4096 parseret 704 avpacket-size 0
realbufreadcount 4096 parseret 3793 avpacket-size 4497
realbufreadcount 4096 parseret 303 avpacket-size 0
[h264 017D6740] non-existing PPS 127 referenced
realbufreadcount 4096 parseret 245 avpacket-size 548
realbufreadcount 4096 parseret 737 avpacket-size 737
realbufreadcount 4096 parseret 1474 avpacket-size 1474
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 905 avpacket-size 905
realbufreadcount 4096 parseret 735 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 1293 avpacket-size 10220
realbufreadcount 4096 parseret 2803 avpacket-size 0
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 644 avpacket-size 3447
realbufreadcount 4096 parseret 1696 avpacket-size 1696
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 789 avpacket-size 789
realbufreadcount 4096 parseret 967 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 489 avpacket-size 9648
realbufreadcount 4096 parseret 1332 avpacket-size 1332
realbufreadcount 4096 parseret 2275 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 2952 avpacket-size 9323
realbufreadcount 4096 parseret 1144 avpacket-size 0
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 2549 avpacket-size 3693
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 998 avpacket-size 998
realbufreadcount 4096 parseret 549 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 2765 avpacket-size 7410
[h264 017D6740] non-existing PPS 6 referenced
realbufreadcount 4096 parseret 1214 avpacket-size 1214
realbufreadcount 4096 parseret 117 avpacket-size 0
realbufreadcount 4096 parseret 4096 avpacket-size 0
realbufreadcount 4096 parseret 131 avpacket-size 4344
realbufreadcount 4096 parseret 515 avpacket-size 515
realbufreadcount 4096 parseret 1030 avpacket-size 1030
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 2060 avpacket-size 2060
realbufreadcount 4096 parseret 360 avpacket-size 0
realbufreadcount 4096 parseret 1041 avpacket-size 1401
[h264 017D6740] FMO is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
realbufreadcount 4096 parseret 2082 avpacket-size 2082
realbufreadcount 4096 parseret 973 avpacket-size 0
realbufreadcount 1335 parseret 1335 avpacket-size 0注意的点
在看 ffmpeg的例子的时候发现 视频从 h264分帧成为avpacket的代码
和 将 aac 分帧成为 avframe的代码会有不同。
这里要注意。这个区别在于 在aac分帧的时候当读取aac文件小于某一个数值的时候会给内存中不停的加数据实际上测试对于aac数据 按照视频的写法也是可以的。之所以这么写是对于其他格式的会有问题aac实际上没有问题。