Как разделить файл OGX (видео)? - PullRequest
2 голосов
/ 10 мая 2010

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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 11 ноября 2014

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

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

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

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

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

0 голосов
/ 10 мая 2010

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

со своего сайта

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

...