Демультиплексирование аудиодорожек из .mp4 с помощью mp4box

У меня есть файл .mp4, содержащий несколько звуковых дорожек. Аудиодорожки кодируются с помощью кодека ALAC. Я хочу извлечь те, которые используют mp4box.

Что я пробовал до сих пор для извлечения трека, так это:

mp4box -single 1 "inputfile.mp4" -out "outputfile.m4a"

Что происходит, это работает так, что создается outputfile.m4a, но что-то с информацией о заголовке / кодеке / файле кажется искаженным. Я могу открыть и воспроизвести файл в VLC, но он не открывается с помощью Windows Media Player / Windows Media Foundation (который мне нужен). Так что либо я делаю что-то не так во время извлечения, либо mp4box помещает файл в странный формат.

Результат mp4box -info -v "outputfile.mp4" выглядит так:

[iso file] Current top box start before parsing 0
[iso file] Read Box type ftyp size 20 start 0
[iso file] Current top box start before parsing 20
[iso file] Read Box type mdat size 8555577 start 20
[iso file] Current top box start before parsing 8555597
[iso file] Read Box type free size 75 start 8555597
[iso file] Current top box start before parsing 8555672
[iso file] Read Box type moov size 4895 start 8555672
[iso file] Read Box type mvhd size 108 start 8555680
[iso file] Read Box type trak size 4779 start 8555788
[iso file] Read Box type tkhd size 92 start 8555796
[iso file] Read Box type mdia size 4679 start 8555888
[iso file] Read Box type mdhd size 32 start 8555896
[iso file] Read Box type hdlr size 55 start 8555928
[iso file] Read Box type minf size 4584 start 8555983
[iso file] Read Box type smhd size 16 start 8555991
[iso file] Read Box type dinf size 36 start 8556007
[iso file] Read Box type dref size 28 start 8556015
[iso file] Read Box type url  size 12 start 8556031
[iso file] Read Box type stbl size 4524 start 8556043
[iso file] Read Box type stsd size 108 start 8556051
[iso file] Read Box type alac size 92 start 8556067
[iso file] Read Box type stts size 24 start 8556159
[iso file] Read Box type stsc size 40 start 8556183
[iso file] Read Box type stsz size 3936 start 8556223
[iso file] Read Box type stco size 408 start 8560159
[iso file] Read Box type alac size 36 start 28
[iso file] Read Box type btrt size 20 start 64
* Movie Info *
        Timescale 600 - 1 track
        Computed Duration 00:01:30.928 - Indicated Duration 00:01:30.928
        Fragmented File: no
        File Brand isom - version 1
        Created: GMT Thu Dec 17 14:35:48 2015
        Modified: GMT Thu Dec 17 14:35:48 2015

File has no MPEG4 IOD/OD

Track # 1 Info - TrackID 1 - TimeScale 44100
Media Duration 00:01:30.929 - Indicated Duration 00:01:30.929
Media Info: Language "und (und)" - Type "soun:alac" - 979 samples
Audio Track - Sample Rate 44100 - 2 channel(s)
[ISOM Tools] codec parameters not known - setting codecs string to default value "alac"
        RFC6381 Codec Parameters: alac
        All samples are sync

Я также пробовал извлекать звуковые дорожки с помощью флага -raw следующим образом:

mp4box -raw 1 "inputfile.mp4"

Он создает inputfile.mp4_track1.alac файл, который я не могу открыть ни в одном плеере (даже в VLC). Глядя на это в HEX-редакторе, он выглядит как сегмент необработанных данных (что, я думаю, имеет смысл), но я не могу заставить mp4box вернуть его в .m4a, который я могу воспроизвести.

Итак, я думаю, вопрос в том, есть ли у кого-нибудь опыт работы с mp4box? Возможно, я пропустил какой-то флаг при извлечении? Или mp4box просто дает неверные результаты? Я надеюсь, что кто-нибудь сможет указать мне правильное направление. Заранее спасибо!


person Foaly    schedule 17.12.2015    source источник


Ответы (1)


mp4box извлек необработанный аудиопоток в файл inputfile.mp4_track1.alac.

Я вижу две причины, по которым проигрыватель Windows Media не может воспроизвести его, в то время как VLC: - WMP не поддерживает необработанный поток и может воспроизводить только аудиопоток, инкапсулированный / мультиплексированный в контейнер файлов (например: .MP4, .MKV, .AVI); и / или - WMP не поддерживает исходный формат ALAC, и на вашем компьютере не установлен этот аудиокодек (попробуйте FFDShow).

person Vincent N    schedule 07.06.2017