c - 如何将 AVFrame 转换为 GstBuffer?

标签 c ffmpeg gstreamer libav gstreamer-1.0

我想通过 libav 推送帧(ffmpeg) 到 GStreamer appsrc元素。问题是如何转换AVFrameAVPictureGstBuffer .有人知道吗?

最佳答案

看一下:
GstBuffer
AVFrame Struct Reference
AVPicture Struct Reference
要遵循的步骤:

  • 从 AVFrame 对象
  • 中删除所有相关信息
  • 创建一个GstBuffer对象并设置相关信息
  • 将 GstBuffer 推送到 appsrc

  • 如果您不确定如何解释 AVFrame 的不同字段以及如何使用它们,请浏览引用页面并研究提供的示例。
    请注意,时间单位是 AVStream->time_base 单位。您可能必须将它们重新缩放/转换为所需的 gstreamer api 格式。
    顺便说一句,为什么不坚持使用 gstreamer?同时使用两个不同的媒体框架的目的是什么? Gstreamer 支持 ffmpeg(尽管被认为是“丑陋的”)。
    GStreamer FFmpeg plug-in

    关于c - 如何将 AVFrame 转换为 GstBuffer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65329501/

    相关文章:

    c - 关于 "C Programming A Modern Approach 2nd Edition"中的printf\t

    c - Dijkstra 路径重构

    c - 将原始视频编码为 h264 无法播放

    ffmpeg - 用不同的颜色覆盖多个淡入淡出的文本

    python - 如何使用 Gstreamer 制作有问题的视频?

    time - gstreamer:如何改变从文件中提取的一个流的渲染时间

    python - 模块未找到错误 : No module named 'gi'

    c - 了解用于处理文件描述符的linux内核数据结构

    c - 如何将for循环改为while循环

    java - java中的FFMPEG进度条