ffmpeg编码:xavc 42210bit+mxf
? ? ? ?AVC是高級視頻編碼的簡稱(Advanced Video Coding),也被叫做H264。代表產品有x264庫。AVC有四種配置(profile)。分別是:Baseline、Extended、Main、High。XAVC符合H.264 Level 5.2標準。
? ? ? 官網ffmpeg.exe執行如下命令可以生成AVC的mxf文件,本人自編譯64位ffmepg(帶x264,x265)也可以生成mxf文件。命令如下:
ffmpeg -i prores.mov -pix_fmt yuv422p10le -r 50 -c:v libx264 -b:v 500M -level 5.2 -x264opts colorprim=bt2020 -x264opts transfer=bt2020 -x264opts colormatrix=bt2020 -x264opts avcintra-flavor=sony -c:a pcm_s24le out500.mxf
若源文件不是mov,本人試的mp4文件,提示無法寫文件頭
本人自編譯32位ffmepg(帶x264)提示video encoding失敗
代碼實現幾個關鍵地方:
avcodec_context->codec_id = bH265 ? AV_CODEC_ID_HEVC : AV_CODEC_ID_H264;
avcodec_context->pix_fmt = b10bit? AV_PIX_FMT_YUV422P10LE : AV_PIX_FMT_YUV420P;
// 設置幀率50fps
avcodec_context->time_base.num = 1;
avcodec_context->time_base.den = fps;
avcodec_context->bit_rate = 200000000; ?//平均碼率200M/b
av_dict_set(¶m, "preset", "ultrafast", 0);
av_video_stream->time_base = avcodec_context->time_base;
int flush_encoder(){//編碼器中剩余的frame還需繼續編碼成packet
?while (true)
? ? ? ? {
? ? ? ? ? ? ret = avcodec_send_frame(avcodec_context, NULL);
? ?? ? ? ? ?ret = avcodec_receive_packet(avcodec_context, av_packet);
。。。
}
總結
以上是生活随笔為你收集整理的ffmpeg编码:xavc 42210bit+mxf的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows 2008上安装VS200
- 下一篇: IXMLDOMDocument中的loa