如何在doc / examples / transcoding.c中使用缩放过滤器

时间:2018-01-19 18:17:22

标签: ffmpeg

我尝试将"null"过滤器替换为"scale=320x180"文件中的doc/examples/transcoding.c过滤器,但只会出现此错误消息:

[libx264 @ 03303ee0] Input picture width (640) is greater than stride (256)
Error occurred: Generic error in an external library

有什么问题?看看init_filters发生在open_output_file之后,编码器已经设置好,甚至不知道输出的分辨率。

如何正确地做到这一点?

看看这段代码,我不知道它正在谈论什么,有些人会不可思议地设置正确的解决方案:

        /* In this example, we transcode to same properties (picture size,
         * sample rate etc.). These properties can be changed for output
         * streams easily using filters */
        if (dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO) {
            enc_ctx->height = dec_ctx->height;
            enc_ctx->width = dec_ctx->width;

在ffmpeg.c中找到了这个:

    enc_ctx->width  = av_buffersink_get_w(ost->filter->filter);
    enc_ctx->height = av_buffersink_get_h(ost->filter->filter);

0 个答案:

没有答案