在学习一些代码的时候发现有些已经弃用了:记录一下新的写法:
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