Exe*_*eev 24 youtube mp4 quicktime exif orientation
我用三星Galaxy II录制了全高清视频,当我将其上传到YouTube时,我发现它变成了90度像肖像布局1080x1920而不是1920x1080.我找到了问题的原因:
YouTube正在阅读视频元数据,并在编码前根据Exif方向旋转视频
这是ExifTool报告(请参阅最后一个标签"轮换"):
ExifTool Version Number : 8.61 File Name : video.mp4 Directory : . File Size : 217 MB File Modification Date/Time : 2011:08:11 00:47:23+04:00 File Permissions : rw-rw-rw- File Type : 3GP MIME Type : video/3gpp Major Brand : 3GPP Media (.3GP) Release 4 Minor Version : 0.3.0 Compatible Brands : 3gp4, 3gp6 Movie Data Size : 227471371 Movie Header Version : 0 Create Date : 1900:01:00 00:00:00 Modify Date : 1900:01:00 00:00:00 Time Scale : 1000 Duration : 0:01:46 Preferred Rate : 1 Preferred Volume : 100.00% Preview Time : 0 s Preview Duration : 0 s Poster Time : 0 s Selection Time : 0 s Selection Duration : 0 s Current Time : 0 s Next Track ID : 3 Track Header Version : 0 Track Create Date : 1900:01:00 00:00:00 Track Modify Date : 1900:01:00 00:00:00 Track ID : 1 Track Duration : 0:01:46 Track Layer : 0 Track Volume : 0.00% Image Width : 1920 Image Height : 1080 Graphics Mode : srcCopy Op Color : 0 0 0 Compressor ID : avc1 Source Image Width : 1920 Source Image Height : 1080 X Resolution : 72 Y Resolution : 72 Bit Depth : 24 Video Frame Rate : 30.023 Matrix Structure : 1 0 0 0 1 0 0 0 1 Media Header Version : 0 Media Create Date : 1900:01:00 00:00:00 Media Modify Date : 1900:01:00 00:00:00 Media Time Scale : 16000 Media Duration : 0:01:46 Handler Type : Audio Track Handler Description : SoundHandler Balance : 0 Audio Format : mp4a Audio Channels : 1 Audio Bits Per Sample : 16 Audio Sample Rate : 16000 Play Mode : SEQ_PLAY Avg Bitrate : 17.1 Mbps Image Size : 1920x1080 Rotation : 90
如何删除整个Exif数据或只编辑Rotation属性?
ign*_*aga 42
Mp4文件(以及许多其他文件)使用MPEG-4标准,该标准将数据排列在称为原子的小盒子中.你可以在这个页面找到很好的原子描述.简而言之,原子以树状结构组织,其中原子可以是其他原子的母体或数据的容器,但不是两者(尽管有些人违反了这个规则)
特别是你要寻找的原子叫做"tkhd"(Track Header).你可以在这里找到原子列表.
在此原子中,您将找到视频的元数据.这里指定了"tkhd"原子的结构
最后,您需要的元数据块(不是原子)称为"矩阵结构".来自developer.apple.com :
矩阵中的所有值均为32位定点数除以16.16,但{u,v,w}列除外,其中包含32位定点数除以2.30.
如下图所示:

9字节矩阵从"tkhd"原子的字节48开始.定向为0°的"矩阵结构"的示例将是1 0 0 0 1 0 0 0 1(单位矩阵)
所以!
毕竟,你需要的是修改这个矩阵.下一个段落来自developer.apple.com :
变换矩阵定义了如何将点从一个坐标空间映射到另一个坐标空间.通过修改变换矩阵的内容,您可以执行多种标准图形显示操作,包括平移,旋转和缩放.用于完成二维变换的矩阵在数学上由3乘3矩阵描述.
这意味着变换矩阵定义了一个函数,该函数将每个坐标映射到一个新坐标.
由于您只需要旋转图像,只需修改最左侧的2 x 3矩阵,该矩阵由字节0,1,3,4,6和7定义.
以下是我用来表示每个方向的2 x 3矩阵(3x3矩阵的值0,1,3,4,6和7):
0°: (x',y')=(x,y)
1 0
0 1
0 0
90°: (x',y')=(height - y,x)
0 1
-1 0
height 0
180°:(x',y')=(widht - x,height - y)
-1 0
0 -1
宽度高度
270°:(x',y')=(y,width-x)
0 -1
1 0
0宽度
如果没有它们,可以在矩阵结构之后获得宽度和高度.它们也是4字节(16.16)的定点数.
您的视频元数据很可能包含90°矩阵
(感谢Exiftool的创建者Phil Harvey 的帮助和精彩的软件)
| 归档时间: |
|
| 查看次数: |
27904 次 |
| 最近记录: |