FFMpeg 代码编译错误汇总

在libav编译报错

(gst-plugin-scanner:8245): GStreamer-WARNING **: 21:16:19.080: Failed to load plugin '/usr/lib/gstreamer-1.0/libgstffmpeg.so': /usr/lib/gstreamer-1.0/libgstffmpeg.so: undefined symbol: ff_mpegtsraw_demuxer

的时候,

查看源码是

......
extern AVInputFormat ff_mpegtsraw_demuxer;
......
static gboolean ffmpegtsfilter_open(GstFFMpegTsFilter* ffmpegtsfilter) 
{
  // 在element中使用了extern声明的ffmpeg demuxer
  AVInputFormat *inputfmt = &ff_mpegtsraw_demuxer;
  ......
}

 

这里需要在ffmpeg面的libavformat/libavformat.v里面添加定义的声明

LIBAVFORMAT_MAJOR {
    global:
        av*;
        ff_*;
    local:
        *;
};

 

这样才能在外部代码extern之后使用。

posted @ 2021-12-10 20:37  FatTank  阅读(263)  评论(0)    收藏  举报