FFMPEG查看帮助信息,查看帮助信息后,可以查看支持编码器,解码器,协议等。
ffmpeg.exe -help
查看支持的编码器(也就是-vcodec后面可以接的参数):
ffmpeg -codecs
查看支持的封装格式(也就是-f后面可以接的参数):
ffmpeg -formats
查看支持的滤镜(也就是-vf后面可以接的参数):
ffmpeg -filters
如何提高解码速度:
1.GPU硬件解码
2.FFMPEG里面实现了多线程并行解码,设置多线程同时对多帧进行解码。包括帧级多线程解码和片级多线程解码。并行解码需要解决依赖问题。如同时对I帧和P帧解码,P帧依赖I帧,怎么办?FFMPEG采用的算法如下:
1.每个线程解码玩一行最后宏块,更新解码高度H1
2.B/P帧解码宏块时,需要把待解码宏块高度H2与H1比较,H2>=H1,线程阻塞等待。
3.每个线程更新解码高度时,阻塞线程都进行高度比较。
代码中设置如下即可:
avcodec_alloc_context3(NULL);
avcodec_parameters_to_context(pCodecCtx, pFormatCtx->streams[Stream]->codecpar);
Codec = avcodec_find_decoder(pCodecCtx->codec_id);
pCodecCtx->thread_count = 4;
pCodecCtx->thread_type = FF_THREAD_FRAME;
//pCodecCtx->thread_type = FF_THREAD_SLICE;
avcodec_open2(pCodecCtx, pCodec, NULL);
Excel折线图分析数据:最近做视频编码质量评断,把YUV数据编码,然后比较不同编码参数下,视频编码质量。
1.编码YUV1数据,解码后得到YUV2数据,然后计算YUV1和YUV2的PSNR值。
2.计算结果保存到TXT文档中,然后在EXCEL中导入TXT文档。“数据”-->"自文本"。
3.编码YUV1数据,解码后得到YUV3数据,然后计算YUV1和YUV3的PSNR值。
4.计算结果保存到TXT文档中,然后在EXCEL中导入TXT文档。“数据”-->"自文本"。
5.选择需要制表的数据区域,“插入”-->"推荐图表",选择折线图即可。