c++ - ffplay - 如何获取 AVDictionary codec_opts
问题描述
当我使用自定义 ffmpeg 播放器应用程序解码人工制品(ffmpeg 流解码 - 不使用 ffplay 时的人工制品)而 ffplay 显示没有人工制品的完美图像时,我需要以与 ffplay 相同的方式实现我的播放器。
ffplay.c使用
AVDictionary *codec_opts;
在cmdutils.c中初始化(纠正我)。我需要这本字典来模拟 ffplay 的编解码器初始化(第 2615f 行),但我不明白它是如何创建的。有没有办法
a) 以与 ffplay 相同的方式包含 cmdutils - 最后链接到 cmdutils.o 最终给了我
:-1: error: /.../cmdutils.o: undefined reference to symbol 'swresample_version@@LIBSWRESAMPLE_3'
尽管我使用(QT)包含了 libswresample:
LIBS +=-L/usr/local/lib -lavformat -lswscale -lswresample -lavutil -lavcodec
b) 以任何其他方式访问 AVDictionary codec_opts?
解决方案
AVDictionary *codec_opts
是的,您可以为自己的实现创建和设置。
检查这些示例:
1) https://github.com/sparrowli/laimpeg/blob/0a68db7d88c0b42c3df584e66366b4e81d3b31ee/libavutil/tests/dict.c
2) https://github.com/ithinkso117/DotNetPusher/blob/cf24e7e10a0b2fa843b435d3d3d3b759a7aa04d3d3b759a7aa04
至于 include cmdutils.c
,这将永远行不通。您只能通过 API 使用 FFmpeg 的库并与共享库链接。
希望这些帮助。
推荐阅读
- python - 如何将数据作为数据文件读入 google Collaboratory
- javascript - Unknown arg `email` in where.email for type UserWhereUniqueInput. GraphQL | NodeJS
- sql - 查询以在单个查询 oracle 中查找各种组合搜索和计数
- python - 获取错误识别器.train(x_train, np.array(y_labels)) TypeError:cv2.error: OpenCV(4.5.1)
- r - R中的阴影矩阵图
- amazon-web-services - JSON 策略关闭多个 EC2 实例?
- r - 如何将一个字段分成 3 个新列
- latex - 如何制作每列以相同数字开头的多列枚举列表?
- css - 如何在导出的 Web 组件中封装 Angular 应用程序的全局 CSS?
- c++ - 全部派生自同一个超类 (C++) 的子类指针列表