как читать видеопоток http с помощью libavcodec (ffmpeg)

Я пытаюсь прочитать поток HTTP-видео в реальном времени (я настроил его с помощью VLC и моей веб-камеры), используя libavcodec из ffmpeg. до сих пор я мог нормально прочитать файл mpeg, но когда я передаю URL-адрес вместо имени файла, он зависает (я предполагаю, что он ждет конца файла).

у кого-нибудь есть опыт / идеи, как это сделать? Я также открыт для альтернатив, если у людей есть другие предложения.

Конечная цель - организовать потоковое видео в реальном времени на iphone. У потоковой передачи http от Apple слишком много лагов для того, что мне нужно, но это уже для другого поста :)

любая помощь приветствуется!


person mwahab    schedule 17.07.2009    source источник


Ответы (3)


если вы не используете способ Apple, вы не можете.

person CiNN    schedule 18.07.2009

Должен признаться, я не совсем понимаю, чего вы хотите достичь, однако, исходя из моей интерпретации вопроса, похоже, что это связано с сегментацией видео.

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

В противном случае придется копаться в кодеке и создавать транспортный поток вручную. MPEG2-TS, который поддерживает iOS, иногда может быть немного сложнее, но это не так уж плохо. Удачи!

person Kristian Evensen    schedule 06.11.2011

вы можете использовать libcurl для загрузки файла http-сегмента

person 7bigtrees    schedule 23.12.2011