用什么方法,才能正确识别视频文件的形状尺寸(dimension)?横向 or 竖向?

2018-06-29 10:07:30 +08:00
 okwork

下面这个是竖屏的视频文件,但是视频信息显示是 1280 x 720px,用 ffmpeg 获取到的信息也是 width =1280px height=720px 这样就会导致视频处理的时候,被当作一个横屏视频来处理,有时候还要考虑到旋转视频,就会导致判断错误。

用什么方法,才能正确识别视频文件的形状尺寸( dimension)?几何横向 or 竖向?

源文件:VID_20180629_094755.mp4

2810 次点击
所在节点    问与答
7 条回复
maskzyx
2018-06-29 10:25:48 +08:00
mediainfo 显示 rotation=90,ffprobe 显示 rotate:90
classyk
2018-06-29 10:40:01 +08:00
碰到用手机拍的视频怎么办,中途方向会变的。每一帧单独处理么?
Grubber
2018-06-29 11:09:30 +08:00
Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuvj420p(pc, smpte170m), 1280x720, 14027 kb/s, SAR 1:1 DAR 16:9, 29.98 fps, 29.97 tbr, 90k tbn, 180k tbc (default)
Metadata:
rotate : 90
creation_time : 2018-06-29T01:47:57.000000Z
handler_name : VideoHandle
Side data:
displaymatrix: rotation of -90.00 degrees

ffmpeg 输出信息,不知道能不能根据这个判断。
okwork
2018-06-29 11:38:02 +08:00
@maskzyx 你用什么参数获取的?我 ffprobe -show_streams -show_format VID_20180629_094755.mp4 看不到 rotation 这个参数

@classyk 这是个情况还比较少遇到,如果中途旋转时系统记录了 rotation 信息,就根据这个值来调整

@Grubber 你这个是通过 ffmpeg -i VID_20180629_094755.mp4 -f ffmetadata metadata.txt 方式输出的吗?我的信息里没看到 rotate 你是哪个版本的 ffmpeg?
Grubber
2018-06-29 11:41:07 +08:00
直接通过 `ffmpeg -i VID_20180629_094755.mp4` 输出的

我试了一下横屏拍的视频 `Metadata` 是没有输出 `rotate : 90` 的,另外 ffmpeg 版本是 3.4 的。
maskzyx
2018-06-29 11:47:42 +08:00
@okwork 没加参数,直接 ffprobe V...mp4 就能看到,ffprobe 版本 4.0.1
okwork
2018-06-29 12:08:18 +08:00
@Grubber 是的,我用的也是 3.4,可能有些视频生成的时候就没有记录 rotation 信息

@maskzyx 我用的 ffprobe version 3.4.2-1~14.04.york1.2 Copyright (c) 2007-2018 the FFmpeg developers 直接 ffprobe v...mp4 输出的信息里没有 rotate 信息,估计是版本问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/466759

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX