2010-05-10 2 views
2

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

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

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

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

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

ответ

0

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

С их сайта

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

0

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

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

Так что вы ищете:

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

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

Смежные вопросы