【问题标题】:FFmpeg C API set encoded frame’s rotationFFmpeg C API 设置编码帧的旋转
【发布时间】:2015-05-30 13:00:06
【问题描述】:

使用 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));
     }
}

【问题讨论】:

    标签: c video ffmpeg


    【解决方案1】:

    我通过在输出视频流的元数据中添加“旋转”来解决此问题。

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-20
      • 2018-07-05
      • 2023-03-04
      • 2014-02-24
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多