2015-09-07 71 views
3

我需要从OGG文件中提取封面。从OGG文件中提取封面图片

我尝试解码存储在METADATA_BLOCK_PICTURE标签的base64字符串,至极我用下面的命令得到:

vorbiscomment -R -e 1.ogg 

Base64编码解码工作没有错误,但生成的二进制文件是不开放既不像JPG ,也不像PNG。

示例文件:http://regress78.com/1.ogg

回答

1

有一个在JFIF或PNG流开始之前二进制数据header

我能够提取从hexdump都解析出的报头的长度(在此情况下42个字节)后有效的JPEG文件:

$ vorbiscomment -R -e 1.ogg | grep METADATA_BLOCK_PICTURE | cut -d '=' -f 2 | base64 -d > 1.dat 
base64: invalid input 
$ dd if=1.dat of=1.jpeg bs=1 skip=42 
114424+0 records in 
114424+0 records out 
114424 bytes (114 kB) copied, 0.112082 s, 1.0 MB/s 
$ file 1.jpeg 
1.jpeg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 72x72, segment length 16, Exif Standard: [TIFF image data, big-endian, direntries=1], baseline, precision 8, 496x500, frames 3