Ticket #722 (closed defect: fixed)
ffmpeg parses bext umid incorrectly when umid is 64 bytes
| Reported by: | dericed | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | avformat |
| Version: | git-master | Keywords: | bext |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
The bext UMID field can be either 32 bytes or 64 bytes. When I run ffmpeg -i 64byteumid.wav on a file with 64 byte UMID, the expressed UMID value is incomplete and missing the last byte (0x45). Note the the umid expressed by ffmpeg inserts an '0x' as the 33rd byte.
ffmpeg reports
0x060A2B34010101010101021333000000FF7FCBA40000008000000000000000FF0x000000000000008000000000000000000000000055534120574E5943444156
but the umid is
0x060A2B34010101010101021033000000FF7FCBA40000008000000000000000FF000000000000008000000000000000000000000055534120574E594344415645
ffmpeg output:
ffmpeg version N-31814-g7076967, Copyright (c) 2000-2011 the FFmpeg developers
built on Nov 29 2011 16:34:05 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3)
configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --cc=/usr/bin/gcc-4.2 --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libxvid --disable-ffplay
libavutil 51. 29. 1 / 51. 29. 1
libavcodec 53. 39. 1 / 53. 39. 1
libavformat 53. 22. 0 / 53. 22. 0
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 50. 0 / 2. 50. 0
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 51. 2. 0 / 51. 2. 0
[wav @ 0x7fd37a83d800] parser not found for codec pcm_s16le, packets or times may be invalid.
[wav @ 0x7fd37a83d800] max_analyze_duration 5000000 reached at 5024000
Input #0, wav, from '64byteumid.wav':
Metadata:
IENG : IENG value
originator_reference: orig reference
IARL : IARL value
artist : IART value
ICMS : ICMS value
comment : sample file for ffmpeg's bext parser
copyright : ICOP value
genre : IGNR value
IKEY : IKEY value
IMED : IMED value
title : INAM value
album : IPRD value
ISBJ : ISBJ value
encoder : ISFT value
ISRC : ISRC value
ISRF : ISRF value
encoded_by : dave
date : 2001-09-13
creation_time : 07:50:05
time_reference : 119136534
umid : 0x060A2B34010101010101021333000000FF7FCBA40000008000000000000000FF0x000000000000008000000000000000000000000055534120574E5943444156
coding_history : A=PCM,F=44100,W=16,M=stereo,T=Orban AUDICY EDIT
A=PCM,F=32000,W=16,M=stereo,T=Orban AUDICY SRC
Duration: 00:00:06.28, bitrate: 1029 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 32000 Hz, 2 channels, s16, 1024 kb/s
At least one output file must be specified
Attachments
Change History
Changed 18 months ago by dericed
-
attachment
64byteumid.wav
added
comment:1 Changed 18 months ago by cehoyos
- Component changed from undetermined to avformat
Does writing a 64bit umid tag work?
comment:2 Changed 18 months ago by dericed
How do I enable bext writing? The command I tried below does not produce a bext chunk (input file has no bext).
ffmpeg -y -i dave.wav -metadata umid="060A2B34010101010101021033000000FF7FCBA40000008000000000000000FF000000000000008000000000000000000000000055534120574E594344415645" -c:a copy umid.wav
ffmpeg version N-31814-g7076967, Copyright (c) 2000-2011 the FFmpeg developers
built on Nov 29 2011 16:34:05 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3)
configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --cc=/usr/bin/gcc-4.2 --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libxvid --disable-ffplay
libavutil 51. 29. 1 / 51. 29. 1
libavcodec 53. 39. 1 / 53. 39. 1
libavformat 53. 22. 0 / 53. 22. 0
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 50. 0 / 2. 50. 0
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 51. 2. 0 / 51. 2. 0
[wav @ 0x7fb90a03d800] parser not found for codec pcm_s16le, packets or times may be invalid.
Input #0, wav, from 'dave.wav':
Duration: 00:00:01.00, bitrate: 1536 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, 2 channels, s16, 1536 kb/s
Output #0, wav, to 'umid.wav':
Metadata:
umid : 060A2B34010101010101021033000000FF7FCBA40000008000000000000000FF000000000000008000000000000000000000000055534120574E594344415645
encoder : Lavf53.22.0
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, 2 channels, 1536 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
size= 188kB time=00:00:01.00 bitrate=1536.4kbits/s
video:0kB audio:188kB global headers:0kB muxing overhead 0.023958%
Note: See
TracTickets for help on using
tickets.



wav file with bext chunk with 64 byte umid