作为头衔,
我在从IP摄像头上拉相框。我将输入的原始数据转换为YUV420格式,并希望将YUV420编码为VP9,并将帧保存为.webm格式。我能做到吗?还是应该输入BGR444格式进行编码?
顺便说一下,设置编码vp9的参数。av_dict_set()是设置参数的正确函数吗?
例:(http://wiki.webmproject.org/ffmpeg/vp9-encoding-guide)
av_dict_set(&opt, "crf" , "23", 0);
av_dict_set(&opt, "speed" , "4" , 0);
av_dict_set(&opt, "threads", "8" , 0);
av_dict_set(&opt, "pass" , "1" , 0);
av_dict_set(&opt, "b:v", "1400k", 0);编辑: wiki使用2 pass来设置参数,我能用1 pass来完成吗?
Edit2: be代码似乎很有效,我想知道如何才能降低视频(vp9)的大小?目前,我有类似的大小使用h264编码器。
av_dict_set(&opt, "crf" , "45", 0);
av_dict_set(&opt, "speed" , "8" , 0);
av_dict_set(&opt, "quality", "realtime", 0);
av_dict_set(&opt, "threads", "8" , 0);
av_dict_set(&opt, "tile-columns", "3", 0);
av_dict_set(&opt, "frame-parallel", "1", 0);
av_dict_set(&opt, "row-mt", "1", 0);Update1: YUV420P可以被编码为VP9!
发布于 2018-11-21 07:27:29
我在从IP摄像头上拉相框。我将输入的原始数据转换为YUV420格式,并希望将YUV420编码为VP9,并将帧保存为.webm格式。我能做到吗?
是。以下是ffmpeg的官方例子:https://github.com/FFmpeg/FFmpeg/tree/master/doc/examples
还是应该输入BGR444格式进行编码?
始终使用象yuv420p这样的yuv格式。不要使用RGB,即使支持RGB也是低效的。
wiki使用2 pass来设置参数,我能用1 pass来完成吗?
是的,2次传球有优势,但没有必要。
be代码似乎在工作,不知道我如何降低视频(vp9)的大小?目前,我有类似的大小使用h264编码器。
您需要的是ffmpeg的sws_scale功能。这做了两件事,缩放和格式转换,两者可以同时执行。检查scaling_video.c示例。
https://stackoverflow.com/questions/53381888
复制相似问题