Как разделить файл 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, но она не взлетела).
Во-вторых, в самом первом кадре теории хранятся все метаданные о потоке. Причина, по которой игроки не могут играть, связана с этим фактом. Если вы намерены разрешить такую опцию поиска, вам нужно будет повторно отправить этот первый кадр (вам, вероятно, даже не нужно будет декодировать его, просто отправьте его повторно).
Итак, что вы ищете:
- Найдите первый пакет с теорией OggS, запишите его.
- Стремись к тому, что тебе нужно.
- Отправьте записанный пакет.
- Пропустить данные до следующего "OggS".
- Начните потоковую передачу данных, как обычно.
Поскольку ваш файл, скорее всего, будет содержать поток Vorbis, а также Theora, вы также можете отправить свой первый пакет.