Opened 3 years ago

Closed 3 years ago

#8375 closed defect (needs_more_info)

FFmpeg produces m4a file unplayable by portable music player

Reported by: Nslw Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
FFmpeg merely copying AAC stream into new container makes the file unplayable for my portable music player.

How to reproduce:
I've got an audio file for which
ffprobe originalFile.m4a
gives

Metadata:

major_brand : M4A
minor_version : 0
compatible_brands: M4A mp42isom

My portable player recognizes it as music and is able to play it. After doing
ffmpeg -i originalFile.m4a -vn -sn -dn -acodec copy convertedFile.m4a
I get a new audio file. My portable player doesn't recognize it as music and isn't able to play it, although desktop players have no troubles playing it.
Command
ffprobe convertedFile.m4a
gives

Metadata:

major_brand : M4A
minor_version : 512
compatible_brands: isomiso2

To make it recognizable and playable on my portable player I do
MP4Box -brand M4A:0 -rb isom -rb iso2 convertedFile.m4a
Command
ffprobe convertedFile.m4a
now gives

Metadata:

major_brand : M4A:
minor_version : 0
compatible_brands: M4A mp42M4A:

It wouldn't work if I only invoked one of below commands:
MP4Box -brand M4A:0 convertedFile.m4a
MP4Box -brand M4A:0 -rb isom convertedFile.m4a
MP4Box -brand M4A:0 -rb iso2 convertedFile.m4a
MP4Box -rb isom -rb iso2 convertedFile.m4a
MP4Box -rb isom convertedFile.m4a
MP4Box -rb iso2 convertedFile.m4a

Afterwards I could call
MP4Box -brand M4A:0 -ab isom -ab iso2 convertedFile.m4a
and the file would be playable as well.
Command
ffprobe convertedFile.m4a
would then give

Metadata:

major_brand : M4A:
minor_version : 0
compatible_brands: M4A mp42M4A:isomiso2

I see two culprits here:
1) compatible_brands should contain M4A as its first entry
2) minor_version should be 0 instead of 512

Change History (4)

comment:1 by Carl Eugen Hoyos, 3 years ago

Component: ffmpegundetermined
Version: 4.1.4unspecified

Please test current FFmpeg git head, provide the command line you tested together with the complete, uncut console output and the model of your audio player to make this a valid ticket.
You can change both compatible brands and minor version in the source code to test if that really fixes playback.

comment:2 by Jun Zhao, 3 years ago

Pls attach the originalFile.m4a for issue reproduce

in reply to:  1 comment:3 by Nslw, 3 years ago

Replying to cehoyos:

Please test current FFmpeg git head, provide the command line you tested together with the complete, uncut console output and the model of your audio player to make this a valid ticket.
You can change both compatible brands and minor version in the source code to test if that really fixes playback.

I don't believe that something changed in git head in that matter so I believe that setting it up and patching would only waste my precious time.
I don't want to provide full console output and I think it's predictable what mp4box does with the file.

My audio player is Pentagram Vanquish VOLT.

Replying to mypopy:

Pls attach the originalFile.m4a for issue reproduce

It's copyrighted so I cannot do it, but I believe it's a standard m4a file from iTunes. MediaInfo shows
"Format profile : Apple audio with iTunes info"
I observed that it's not that particular file that causes the issue, because a file from unrelated batch causes the same issue when converted with ffmpeg.

What do you need that file for?

comment:4 by Carl Eugen Hoyos, 3 years ago

Resolution: needs_more_info
Status: newclosed
Note: See TracTickets for help on using tickets.