本文主要是介绍FFmpeg 'avcodec_copy_context' deprecated (视频裁剪),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在学习一些代码的时候发现有些已经弃用了:记录一下新的写法:
1,avcodec_copy_context
以前的写法:
ret = avcodec_copy_context(outStream->codec, inStream->codec);if (ret < 0){fprintf(stderr, "Failed to copy context from input to output stream codec context\n");goto end;}outStream->codec->codec_tag = 0;if (outFmtCtx->oformat->flags & AVFMT_GLOBALHEADER){outStream->codec->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;}
新的写法:(来自雷霄骅:https://blog.csdn.net/leixiaohua1020/article/details/25422685)
AVCodecContext *codecCtx = avcodec_alloc_context3(codec);ret = avcodec_parameters_to_context(codecCtx, inStream->codecpar);if (ret < 0){printf("Failed to copy in_stream codecpar to codec context\n");goto end;}codecCtx->codec_tag = 0;if (outFmtCtx->oformat->flags & AVFMT_GLOBALHEADER){codecCtx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;}ret = avcodec_parameters_from_context(outStream->codecpar, codecCtx);if (ret < 0){printf("Failed to copy codec context to out_stream codecpar context\n");goto end;}
2,av_free_packet(&pkt)
新的写法:
av_packet_unref(&pkt);
视频裁剪
#include <stdio.h>
#include <libavutil/timestamp.h>
#include <libavformat/avformat.h>int cut
这篇关于FFmpeg 'avcodec_copy_context' deprecated (视频裁剪)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!