同じ曲(両方ともM4A形式)を含む2つのファイルは、ハッシュを計算するときに2つの異なる結果を出力します。
md5sum
f149e2d2a232a410fcf61627578c101a new.m4a
ad26ed675342f0f45dcb5f9de9d586df old.m4a
同じバイト数を含みます。
ls -l
-rw-rw-r-- 1 cdc cdc 2978666 Jun 26 19:49 new.m4a
-rwxrwxr-x 1 cdc cdc 2978666 Jun 26 19:49 old.m4a
これはexiftool
作成日(作成日)のみ異なります。ペーストビンnew.m4a
そしてペーストビンのためのold.m4a
)。
私はAudacityのツールを使用して2つのファイルを比較しました(反転して混合して互いに類似性を排除しました)。結果は何も残っていなかったので沈黙です。つまり、2つのファイル間に差がないことを意味します。
コマンドはcmp
以下を提供します。
cmp -l
54 375 23
55 51 305
56 41 112
58 375 23
59 51 305
60 45 116
170 375 23
171 51 305
172 41 112
174 375 23
175 51 305
176 41 112
270 375 23
271 51 305
272 41 112
274 375 23
275 51 305
276 41 112
cmp -b
new.m4a old.m4a differ: byte 54, line 1 is 375 M-} 23 ^S
ただ本物違いは、そのold.m4a
ファイルが2020年12月にダウンロードされたファイルで、new.m4a
数時間前にダウンロードされたことです。
必要に応じてダウンロードできます。new.m4a
ここそしてold.m4a
ここ。最初は両方ともアーティストのBandcampページからダウンロードされました。
PS:私の人間の耳は、両方が同じだと言います。
答え1
印刷されたメタデータはexiftool
ファイルデータの一部です。つまり:
$ diff <(exiftool old.m4a) <(exiftool new.m4a)
2c2
< File Name : old.m4a
---
> File Name : new.m4a
18,19c18,19
< Create Date : 2020:12:31 18:13:30
< Modify Date : 2020:12:31 18:13:34
---
> Create Date : 2021:06:26 18:57:37
> Modify Date : 2021:06:26 18:57:41
32,33c32,33
< Track Create Date : 2020:12:31 18:13:30
< Track Modify Date : 2020:12:31 18:13:30
---
> Track Create Date : 2021:06:26 18:57:37
> Track Modify Date : 2021:06:26 18:57:37
40,41c40,41
< Media Create Date : 2020:12:31 18:13:30
< Media Modify Date : 2020:12:31 18:13:30
---
> Media Create Date : 2021:06:26 18:57:37
> Media Modify Date : 2021:06:26 18:57:37
(これは、保存されている肉データではなく、ディスクに保存された日付など、2つのファイルのファイル日付が同じになるようにした後です。存在する文書)
生成時のmd5の合計みんなデータが使用されます。バイトが違うのでチェックサムも違います。
つまり、オーディオデータそれは同じです。
これに加えて、cmp
16進ダンプを実行して生の違いを確認することもできます。
たとえば(最初の50バイトをスキップ、最大300種類の16進数):
$ diff <(od -j 50 -N 300 -t x1 old.m4a) <(od -j 50 -N 300 -t x1 new.m4a)
1c1
< 0000062 00 00 dc 13 c5 4a dc 13 c5 4e 00 00 ac 44 00 71
---
> 0000062 00 00 dc fd 29 21 dc fd 29 25 00 00 ac 44 00 71
8c8
< 0000242 68 64 00 00 00 07 dc 13 c5 4a dc 13 c5 4a 00 00
---
> 0000242 68 64 00 00 00 07 dc fd 29 21 dc fd 29 21 00 00
14,15c14,15
< 0000402 00 20 6d 64 68 64 00 00 00 00 dc 13 c5 4a dc 13
< 0000422 c5 4a 00 00 ac 44 00 71 bc 00 55 c4 00 00 00 00
---
> 0000402 00 20 6d 64 68 64 00 00 00 00 dc fd 29 21 dc fd
> 0000422 29 21 00 00 ac 44 00 71 bc 00 55 c4 00 00 00 00
たとえば、
OLD: 00 00 dc 13 c5 4a dc 13 c5 4e 00 00 ac 44 00 71
|___________||___________|
---
NEW: 00 00 dc fd 29 21 dc fd 29 25 00 00 ac 44 00 71
|___________||___________|
次に、次のように日付に変換します。
m4aはApple Mac OS X HFS +タイムスタンプ(1904年1月1日深夜GMT以降の秒数)を使用します。
old:
dc 13 c5 4a => 3692283210 => Thursday, December 31, 2020 18:13:30
dc 13 c5 4e => 3692283214 => Thursday, December 31, 2020 18:13:34
new:
dc fd 29 21 => 3707578657 => Saturday, June 26, 2021 18:57:37
dc fd 29 25 => 3707578661 => Saturday, June 26, 2021 18:57:41