M4Aアトムをファイルに挿入する際に問題が発生しています。元のファイルはudta構造を持っていないので、私はガイドとして横たわっていた既存のM4Aファイルを使用して追加しました。M4Aタグの問題
は、ここで私は原子を追加するためにやったことだ:
- メモリにUDTA原子を構築
- アップデートファイルをコピーアップUDTA原子
- のサイズに含まれるようにmoovアトムのサイズ最初のトラップ原子の終わりまで
- 私のudta原子を挿入してください
- 残りの部分はいつものようにコピーしてください。
元のファイルとタグ付きファイルの唯一の違いは、タグを格納するためにmdatアトムが少し下に移動したことだけです。これは、他の原子の中のその位置への言及があると私に信じさせるが、見つけられない。ここで
はAtomicParsleyから出力されます:
オリジナルファイル:
Atom ftyp @ 0 of size: 36, ends @ 36
Atom moov @ 36 of size: 30156, ends @ 30192
Atom mvhd @ 44 of size: 108, ends @ 152
Atom iods @ 152 of size: 33, ends @ 185
Atom trak @ 185 of size: 30007, ends @ 30192
Atom tkhd @ 193 of size: 92, ends @ 285
Atom mdia @ 285 of size: 29907, ends @ 30192
Atom mdhd @ 293 of size: 32, ends @ 325
Atom hdlr @ 325 of size: 37, ends @ 362
Atom minf @ 362 of size: 29830, ends @ 30192
Atom smhd @ 370 of size: 16, ends @ 386
Atom dinf @ 386 of size: 36, ends @ 422
Atom dref @ 394 of size: 28, ends @ 422
Atom stbl @ 422 of size: 29770, ends @ 30192
Atom stts @ 430 of size: 24, ends @ 454
Atom stsd @ 454 of size: 106, ends @ 560
Atom mp4a @ 470 of size: 90, ends @ 560
Atom esds @ 506 of size: 54, ends @ 560
Atom stsz @ 560 of size: 26888, ends @ 27448
Atom stsc @ 27448 of size: 40, ends @ 27488
Atom stco @ 27488 of size: 2704, ends @ 30192
Atom mdat @ 30192 of size: 2495503, ends @ 2525695
変更したファイル:
Atom ftyp @ 0 of size: 36, ends @ 36
Atom moov @ 36 of size: 30323, ends @ 30359
Atom mvhd @ 44 of size: 108, ends @ 152
Atom iods @ 152 of size: 33, ends @ 185
Atom trak @ 185 of size: 30007, ends @ 30192
Atom tkhd @ 193 of size: 92, ends @ 285
Atom mdia @ 285 of size: 29907, ends @ 30192
Atom mdhd @ 293 of size: 32, ends @ 325
Atom hdlr @ 325 of size: 37, ends @ 362
Atom minf @ 362 of size: 29830, ends @ 30192
Atom smhd @ 370 of size: 16, ends @ 386
Atom dinf @ 386 of size: 36, ends @ 422
Atom dref @ 394 of size: 28, ends @ 422
Atom stbl @ 422 of size: 29770, ends @ 30192
Atom stts @ 430 of size: 24, ends @ 454
Atom stsd @ 454 of size: 106, ends @ 560
Atom mp4a @ 470 of size: 90, ends @ 560
Atom esds @ 506 of size: 54, ends @ 560
Atom stsz @ 560 of size: 26888, ends @ 27448
Atom stsc @ 27448 of size: 40, ends @ 27488
Atom stco @ 27488 of size: 2704, ends @ 30192
Atom udta @ 30192 of size: 167, ends @ 30359
Atom meta @ 30200 of size: 159, ends @ 30359
Atom ilst @ 30212 of size: 147, ends @ 30359
Atom ©ART @ 30220 of size: 35, ends @ 30255
Atom data @ 30228 of size: 27, ends @ 30255
Atom ©nam @ 30255 of size: 63, ends @ 30318
Atom data @ 30263 of size: 55, ends @ 30318
Atom ©alb @ 30318 of size: 41, ends @ 30359
Atom data @ 30326 of size: 33, ends @ 30359
Atom mdat @ 30359 of size: 2495503, ends @ 2525862
ノートのもう一つは、私はタグ付けされたファイルを参照として使用していることですudta-> metaの下にhdlrアトムがありますが、そのタグのコピーを追加しても役に立ちませんでした。 udta原子とmoovのサイズデータを手動で削除すると、ファイルは再び動作します。
私がタグ付けされたファイルを再生しようとすると、私は様々なプログラムでこれらのエラーを取得:私はプログラムの他の99%がMP3の以外のファイルにID3タグを認識したいどのように
mplayer:
[aac @ 0x204d720] channel element 0.0 is not allocated
[aac @ 0x204d720] channel element 0.0 is not allocated
[aac @ 0x204d720] channel element 3.13 is not allocated
[aac @ 0x204d720] channel element 2.14 is not allocated
[aac @ 0x204d720] channel element 2.9 is not allocated
[aac @ 0x204d720] Prediction is not allowed in AAC-LC.
[aac @ 0x204d720] channel element 3.1 is not allocated
[aac @ 0x204d720] channel element 0.3 is not allocated
....
totem:
** Message: Error: Could not decode stream.
gstfaad.c(1319): gst_faad_chain(): /GstPlayBin2:play/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstFaad:faad0:
decoding error: Bitstream value not allowed by specification
banshee:
[Error 08:26:27.610] GStreamer stream error: Decode
[Error 08:26:27.960] GStreamer stream error: Decode
[Error 08:26:28.252] GStreamer resource error: NotFound
ああ、...
うん、それは魅力的なように働いた! –