gpt4 book ai didi

c - FFmpeg C API 设置编码帧的旋转

转载 作者:行者123 更新时间:2023-11-30 15:22:12 26 4
gpt4 key购买 nike

使用 FFmpeg C API,我可以对视频进行编码和解码。但是,重新编码的视频流不会保持原始视频的方向(旋转)。因此,垂直视频已被水平翻转。

我不知道如何解决这个问题。是否有已设置的元数据字段?使用 MediaInfo,我看到原始视频有一个元数据字段“旋转:90°”,而新视频没有。还是每个编码帧都需要垂直旋转?

我查看了解码帧的 side_data,但它是空的。

for (j = 0; j < decoded_frame->nb_side_data; j++) {
AVFrameSideData *sd = decoded_frame->side_data[j];
if(sd->type == AV_FRAME_DATA_DISPLAYMATRIX) {
LOGI("=> displaymatrix: rotation of %.2f degrees", av_display_rotation_get((int32_t *)sd->data));
}
}

最佳答案

我通过将“旋转”添加到输出视频流的元数据中解决了这个问题。

av_dict_copy(&output_stream->metadata, input_stream->metadata, AV_DICT_DONT_OVERWRITE);

这里对旋转元数据字段有很好的解释: Correct Smartphone Video Orientation and How To Rotate iOS and Android Videos with ffmpeg

关于c - FFmpeg C API 设置编码帧的旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29279686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com