Несколько аудиопотоков в файле MPEG-4 - PullRequest
2 голосов
/ 26 мая 2009

Формат файла MPEG-4 позволяет нескольким потокам присутствовать в файле. Это полезно для видео, содержащих аудио на нескольких языках. В случае такого видео аудиопотоки синхронизируются с видео.

Можно ли создать файл MPEG-4, содержащий десинхронизированные аудиопотоки, т. Е. Аудиодорожка воспроизводится за другой?

Я хочу создать файл MPEG-4, содержащий музыкальный альбом, поэтому очень важно, чтобы дорожки воспроизводились один за другим с помощью медиаплееров, таких как VLC . Когда я использую MP4Box (из фреймворка GPAC ), результирующий файл распознается VLC как синхронизированные аудиопотоки. Какой блок формата файла MPEG-4 отвечает за это? Или как я могу сказать VLC, что эти аудиопотоки не синхронизированы?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 27 мая 2009

Я могу подумать о двух способах, которыми вы могли бы сделать это, и оба были бы несколько проблематичными.

Вы можете объединить все аудиопотоки в одну аудиодорожку в файле MP4. Это не будет идеальным, по некоторым очевидным причинам. Во-первых, это не совсем то, что вы просили.

Вы также можете просто сохранить дорожки в виде синхронизированных аудиопотоков, но установить информацию о синхронизации таким образом, чтобы первая выборка второй дорожки не начинала воспроизводиться, пока не закончится воспроизведение первой дорожки и т. Д.

Мне не известны какие-либо инструменты, способные сделать это, но формат файла будет поддерживать такую ​​схему. Поскольку это необычный способ хранения аудио в файле MP4, я ожидаю, что у плееров тоже будут проблемы с этим.

0 голосов
/ 29 мая 2009

Будет работать объединение всех потоков, и к отдельным трекам можно обратиться, добавив главы. Работает хотя бы с VLC.

    MP4Box -new -cat track1.m4a -cat track2.m4a -chap chapters.txt album.m4a

chapters.txt будет выглядеть примерно так:

    CHAPTER1=00:00:00.00
    CHAPTER1NAME=Track 1
    CHAPTER2=00:03:40.00
    CHAPTER2NAME=Track 2

Но это всего лишь взлом. Решение, которое я ищу, должно сохранить треки в виде отдельных потоков.

...