【问题标题】:ffmpeg - Read raw Data instead of converting to different Formatffmpeg - 读取原始数据而不是转换为不同的格式
【发布时间】:2020-07-07 03:48:02
【问题描述】:

由于 ffmpeg 通常会读取给定编解码器的音频/图像/视频文件,然后将其转换为不同的编解码器,因此它必须在某些时候保留媒体文件的原始值,其中:

  • 对于音频,原始样本(2*44100 个样本)在立体声音频为 int / float 的情况下
  • 图像的 rgba 像素数据(作为 int8 数组)
  • 用于视频、图像数组和链接的音频流

我怎样才能从本质上读取这些原始值并将它们放入内存/磁盘中,比如说 C++/Python/Java?

最好的问候

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    ffmpeg 只是一个命令行工具。幕后的图书馆是 Libav* 系列的一部分。即 libavformt、libavcodec、libavtuil、swsscale、swresample 等。

    您可以直接在 C 或 C++ 中使用这些库,或者在其他语言中使用一些软 FFI。 (您也可以通过管道传输一些原始格式,例如 y4m)

    从文件名到帧缓冲区将需要更多的代码,而不仅仅是“open()”,但是网上有很多教程和其他 stackoverflow 问题可以回答这个问题。

    注意:

    图像的 rgba 像素数据(作为 int8 数组)

    RGBa 不是很常见的视频格式。它通常是 YUV,并且通常对色度平面使用子采样。它通常也是规划器,因此它不是一个 int8 数组,而是一个指向多个 int8 数组的指针数组

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-01
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      • 2021-03-18
      • 2012-02-19
      相关资源
      最近更新 更多