Для всех, кто имеет опыт использования jcodec, я понимаю, что библиотека еще не может кодировать аудио (она может ее декодировать).Может ли jcodec добавлять аудио в файл MP4?
Однако jcodec действительно есть PCMMP4MuxerTrack class, который позволяет вам addSamples (ByteBuffer) необработанных данных PCM для звуковой дорожки при кодировании ваш MP4 видео. Это создает видеофайл MP4 со звуком.
Я успешно добавлен фиктивный PCM аудио в качестве MP4 файл, который я экспортируемые и VLC играл это правильно, так что это, кажется, работает ...
Но если это работает, почему я продолжаю видя, что люди говорят, что MP4 не поддерживает аудио PCM (one source)?
Мне просто повезло, что VLC точно воспроизводит мой MP4-файл со звуком? Может ли он не работать на других игроках/операционных системах?
«Почему я все время вижу, что люди говорят, что MP4 не поддерживает аудио PCM?», Потому что это не так. MP4 - MPEG для хранения только MPEG-кодеков (видео h.264/h.265 и аудио AAC/MP3). В VLC перейдите к ** Tools **, затем ** Codec Information **. Поток 0 обычно является видео, а stream1 - аудио. Говорит ли звук MP4a? (тогда JCodec конвертировал PCM в AAC или MP3), иначе это означает, что вам повезло, что VLC сыграл его. Проверьте также перетаскивание файла на вкладку браузера (он может работать, поскольку браузеры понимают как AAC, так и PCM). Если браузеры могут играть, это тоже достаточно? –
А, это действительно очень полезно, я не знал, что трюк VLC. Это действительно PCM, что хорошо знать, так как мне было интересно, если jcodec конвертирует в AAC/MP3 за кулисами - не думаю. – FTLRalph
К сожалению, Java не является моим основным языком, но я понимаю медиаформаты. Я не понимаю, как JCodec может писать PCM, но не AAC/MP3-байты в том же месте? Если вы ** [смотрите здесь] (https://github.com/jcodec/jcodec/tree/master/src/main/java/org/jcodec/containers/mp4/muxer) **, то я думаю, что либо ** MP4Muxer .java ** или ** FramesMP4MuxerTrack.java ** поможет вам добавить звуковые кадры. Звук MP3 и AAC разделяется на сами кадры, поэтому, возможно, «за цикл» захватывает каждый байт AAC и мультиплексор? –