小编nec*_*ato的帖子

如何在 C/C++ 中设置 ffmpeg qscale 进行图像编码

我有一个使用 ffmpeg 作为后端的 C++ 工作图像编码器。我正在拍摄视频并将帧保存为 jpeg,但我无法调整输出 jpeg 的质量。
事情我已经尝试:
设置AVCodecContextglobal_qualitycompression_level领域。
我也试过qscale用一个AVDictionary选项设置,但也没有成功。

我知道这是可能的,因为使用命令行我
ffmpeg -i INPUT -q:v 2 output_frame_%02d.jpg可以获得更高质量的图像。

c encoding ffmpeg

3
推荐指数
1
解决办法
760
查看次数

解码后的音频数据如何存储在ffmpeg AVFrame中?

在开始编写音频混合代码之前,我正在寻求有关 ffmpeg 如何在帧中存储解码的音频数据的说明。AVFrameint formatuint8_t* data[]成员。如果我的理解是正确的,那么在使用它之前应该将其中的字节data转换为正确的类型。format因此,要做一个简单的 2 倍级别提升 if format == AV_SAMPLE_FMT_S16,我会:

int16_t* audio_samples = frame->data[0];
int num_samples = frame->nb_samples * frame->channels;
for (int i = 0; i < num_samples; ++i) {
  audio_samples[i] = audio_samples[i] * 2;
}
Run Code Online (Sandbox Code Playgroud)

这是正确的处理方式吗?

c audio ffmpeg decoding

2
推荐指数
1
解决办法
1903
查看次数

标签 统计

c ×2

ffmpeg ×2

audio ×1

decoding ×1

encoding ×1