您的位置:首页 > 其它

ffmpeg--处理视频旋转

2016-09-26 15:29 585 查看
保持旋转

ffmpeg
-noautorotate  -i IMG_1182.mp4   -vcodec h264 -c:a copy  1.mp4
去掉旋转

旧的ffmpeg,如果视频带旋转标识,转码后(如切ts),播放起来视频有角度,新的ffmpeg(313)已修复此问题。

相关代码在ffmpeg_filter.c的configure_input_video_filter。

  if (ist->autorotate) {       //在ffmpeg_opt.c的add_input_streams函数,默认设置为1

        double theta = get_rotation(ist->st);

        if (fabs(theta - 90) < 1.0) {

            ret = insert_filter(&last_filter, &pad_idx, "transpose", "clock");

        } else if (fabs(theta - 180) < 1.0) {

            ret = insert_filter(&last_filter, &pad_idx, "hflip", NULL);

            if (ret < 0)

                return ret;

            ret = insert_filter(&last_filter, &pad_idx, "vflip", NULL);

        } else if (fabs(theta - 270) < 1.0) {

            ret = insert_filter(&last_filter, &pad_idx, "transpose", "cclock");

        } else if (fabs(theta) > 1.0) {

            char rotate_buf[64];

            snprintf(rotate_buf, sizeof(rotate_buf), "%f*PI/180", theta);

            ret = insert_filter(&last_filter, &pad_idx, "rotate", rotate_buf);

        }

        if (ret < 0)

            return ret;
    }

堆栈为:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: