Как разделить файл OGX (видео)?

Я пытаюсь создать PHP-скрипт, который будет доставлять данный файл.ogx на основе позиции поиска (передаваемой в качестве параметра в скрипт). Цель состоит в том, чтобы сделать видеоплеер HTML5 с функциями поиска на стороне сервера.

Я немного изучил формат контейнера и создал скрипт.php, чтобы начать доставку данных из первого экземпляра строки "OggS", которая находится перед позицией поиска (в байтах).

Проблема в том, что, хотя мой новый файл.ogx начинается со строки "OggS", он полностью не воспроизводится в HTML5, VLC или любом другом проигрывателе, если позиция поиска отличается от 0.

Если я установлю позицию поиска на 0, сценарий выдаст мне весь файл, и он будет воспроизводиться.

Итак, как мне обрезать начало файла.ogx, продолжая создавать правильный битовый поток?

2 ответа

Вам следует взглянуть на FFMpeg, библиотеку, которая позволяет вам различными способами управлять видео и аудио файлами. http://www.ffmpeg.org/

С их сайта

FFmpeg - это комплексное кроссплатформенное решение для записи, конвертации и потоковой передачи аудио и видео. Он включает в себя libavcodec - ведущую библиотеку аудио / видео кодеков.

Прежде всего я должен указать, что общее расширение для видео в контейнере Ogg .ogv, Тот, который вы используете .ogx зарезервирован для исполняемого кода в контейнере Ogg, но в настоящее время нет потоков, которые могут нести такой код (была попытка создать замену Flash, но она не взлетела).

Во-вторых, в самом первом кадре теории хранятся все метаданные о потоке. Причина, по которой игроки не могут играть, связана с этим фактом. Если вы намерены разрешить такую ​​опцию поиска, вам нужно будет повторно отправить этот первый кадр (вам, вероятно, даже не нужно будет декодировать его, просто отправьте его повторно).

Итак, что вы ищете:

  1. Найдите первый пакет с теорией OggS, запишите его.
  2. Стремись к тому, что тебе нужно.
  3. Отправьте записанный пакет.
  4. Пропустить данные до следующего "OggS".
  5. Начните потоковую передачу данных, как обычно.

Поскольку ваш файл, скорее всего, будет содержать поток Vorbis, а также Theora, вы также можете отправить свой первый пакет.

Другие вопросы по тегам