H.265 и Opus в контейнере Mp4 – это возможно?

Вопрос или проблема

У меня есть файл MKV с видео в формате HEVC и аудио в формате OPUS. Он прекрасно воспроизводится во всех плеерах. Проблема в том, что мне нужно, чтобы его можно было стримить. Когда VLC воспроизводит MKV из интернета, он сначала скачивает его, а затем воспроизводит.

Есть ли способ поместить h.265 и opus в контейнер mp4 с атомом moov в начале mp4 файла, чтобы можно было начать воспроизведение без необходимости загружать весь файл?

Я пробовал сделать это с помощью нескольких программ, но безуспешно. При использовании cloudconvert.com я получаю ошибку “Не удалось записать заголовок для выходного файла #0 (неправильные параметры кодека ?): Неверный аргумент”.

Я только что наткнулся на коммит о черновике flac-в-mp4, который упоминает opus-в-mp4, что означает, что это еще не возможно, но возможно в будущем.

Да, это работает.

# ffmpeg 4.4
ffmpeg -i test.mp4 -c:a opus -strict -2 -c:v copy opus.mp4

Ответ или решение

Да, вы можете использовать кодеки H.265 (HEVC) для видео и Opus для аудио в контейнере MP4, однако важно учесть, что кодек Opus в MP4 не всегда поддерживается во всех проигрывателях и может вызвать проблемы с совместимостью. Важно также убедиться, что структура файла позволяет обеспечить потоковое воспроизведение.

Для того чтобы сделать MP4 файл с H.265 и Opus, вам потребуется использовать инструмент, такой как FFmpeg, который позволяет манипулировать медиафайлами и транскодировать их в различные форматы. Вам нужно сначала установить FFmpeg, если он еще не установлен на вашем компьютере.

Вот шаги, которые вам нужно выполнить:

  1. Установите FFmpeg. Если у вас его нет, вы можете скачать и установить его с официального сайта FFmpeg.

  2. Используйте команду FFmpeg для конвертации вашего файла. Предположим, что ваш файл называется test.mkv. Для конвертации используйте следующую команду:

    ffmpeg -i test.mkv -c:v copy -c:a libopus -movflags +faststart output.mp4
    • -i test.mkv: указывает входной файл.
    • -c:v copy: копирует видеопоток без изменений (что подразумевает использование H.265).
    • -c:a libopus: кодирует аудиопоток с использованием кодека Opus.
    • -movflags +faststart: корректирует расположение атома moov в начале файла, что позволяет начать потоковое воспроизведение сразу же, не дожидаясь загрузки всего файла.
  3. Проверьте выходной файл. После завершения команды, проверьте выходной файл output.mp4 в различных проигрывателях, таких как VLC, чтобы убедиться, что он воспроизводится корректно.

Если вы столкнетесь с проблемами при воспроизведении или совместимости, возможно, стоит рассмотреть возможность использования других кодеков для аудио (например, AAC), так как они лучше поддерживаются в контейнере MP4:

ffmpeg -i test.mkv -c:v copy -c:a aac -movflags +faststart output.mp4

Таким образом, вы сможете создать MP4 файл с H.265 и Opus (или AAC) с правильной структурой для потокового воспроизведения.

Оцените материал
Добавить комментарий

Капча загружается...