【问题标题】:Overlying video frames using FFmpeg in c++在 C++ 中使用 FFmpeg 覆盖视频帧
【发布时间】:2020-08-26 14:48:29
【问题描述】:

我正在尝试在 c++ 中使用 FFmpeg 覆盖两个视频。所以我跟着FFmpeg页面,在终端里跟着这个命令。

$ ffmpeg -i Right.mov -i Left.mov -filter_complex "[0:v][1:v] overlay=0:0"  -c:a copy output.mov

我可以通过终端实现这个功能,但是我正在尝试通过编码来实现这个功能。

typedef struct {
    AVFormatContext *fmt_ctx;
    int stream_idx;
    AVRational time_base;
    AVStream *video_stream;
    AVCodecContext *codec_ctx;
    AVCodecContext *pCodecCtxOrig;
    AVCodec *decoder;
    AVPacket *packet;
    AVFrame *av_frame;
    AVFrame *gl_frame;
    AVFrame *out_frame;
    AVStream *pStream;
    struct SwsContext *conv_ctx;

另外,我展示了一些示例代码,但我不确定

https://ffmpeg.org/doxygen/2.1/doc_2examples_2filtering_video_8c-example.html

https://code5.cn/so/c%2B%2B/2601062

AVFilterContext *buffersink_ctx;
AVFilterContext *buffersrc_ctx;
AVFilterGraph *filter_graph;

如何在我的代码中实现此功能?

【问题讨论】:

    标签: c++ opengl ffmpeg video-processing


    【解决方案1】:

    很久以前,我写了一个程序,它使用 ffmpeg 来解码视频并将它们显示为 OpenGL 纹理。您可以从以下位置下载代码 my home page 请注意,此代码已有十多年的历史且尚未维护,因此我不能说它仍然有效。但似乎没有人为您提供更好的答案,所以我希望这至少可以帮助您入门。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-11
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 2020-12-27
      • 2016-12-08
      • 2016-10-16
      • 2021-11-27
      相关资源
      最近更新 更多