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;
}
堆栈为:
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;
}
堆栈为:
相关文章推荐
- ffmpeg+mencoder环境搭建和视频处理总结
- ffmpeg+mencoder环境搭建和视频处理总结
- ffmpeg+mencoder环境搭建和视频处理总结
- windows下安装ffmpeg(php视频处理扩展)
- 命令行处理视频切分——ffmpeg,avidemux,qt-faststart,mencoder,vlc,MP4Box & gstreamer
- ffmpeg+mencoder环境搭建和视频处理总结
- NET 2.0(C#)调用ffmpeg处理视频的方法
- 19个常用的ffmpeg视频处理命令
- Centos下 ffmpeg 和opencv一起配合处理视频
- ffmpeg+mencoder环境搭建和视频处理总结
- gentoo ffmpeg+mencoder快速搭建视频处理系统笔记 推荐
- mencoder和ffmpeg参数详解 (Java处理视频)
- NET 2.0(C#)调用ffmpeg处理视频的方法
- NET 2.0(C#)调用ffmpeg处理视频的方法
- ffmpeg+mencoder环境搭建和视频处理总结
- NET 2.0(C#)调用ffmpeg处理视频的方法
- java 视频处理 ffmpeg+mencoder
- ffmpeg+mencoder环境搭建和视频处理总结
- FFMPEG 视频旋转设置
- NET 2.0(C#)调用ffmpeg处理视频的方法