Отправка транскодированного видео на лету для встраивания результатов http без панели поиска

Я пытаюсь найти простое домашнее решение для потоковой передачи / перекодирования видео на машину низкого уровня, которая не может правильно воспроизводить файл.

Я пытаюсь сделать это с помощью ffmpeg (поскольку ffserver будет прекращено). Я обнаружил, что ffmpeg имеет встроенный http-сервер, который можно использовать для этого.

Приложение, которое я тестирую с (для seekbar), это vlc

Я, вероятно, здесь что-то делаю не так (или пытаюсь сделать что-то, что другие делают с другими приложениями)

Мой код ffmpeg, который я использую:

d: \ ffmpeg \ bin \ ffmpeg.exe -r 24 -i "D: \ test.mkv" -threads 2 -vf scale = 1280: 720 -c: v libx264 -preset medium -crf 20 -maxrate 1000k -bufsize 2000k -c: a ac3 -seekable 1 -movflags faststart -listen 1 -f mpegts http://127.0.0.1:8080/test.mpegts

Этот код также дает мне возможность начать смотреть его, когда я хочу (в отличие от использования rtmp через udp, который запускал бы видео, как только он его перекодировал)

Я читал о перемещении atoom объекта при загрузке файла, который должен обрабатываться movflags faststart

Я также безуспешно проверил опцию -re, -r 25 просто чтобы подавить Past duration 0.xx too large предупреждение, которое я прочитал, - это нормальное явление. тестовый файл - это один из многих файлов с разными настройками кодировщика и т. д.

Приведенный выше параметр дает мне seekbar, но он не работает, и нет общей продолжительности (и нет индикатора выполнения), когда я переключаюсь с mpegts на matroska / mkv, я вижу продолжительность видео (и прогресс), но нет панели поиска.

Если это возможно с помощью только ffmpeg, я бы предпочел использовать его как отдельное решение без дополнительных серверов rtmp / others.


person BigRetroMike    schedule 23.05.2017    source источник
comment
Все еще исследуя проблему, я вижу, что при использовании сборки http-сервера перекодировка как бы застревает (почти как http не достаточно быстро очищается от данных)   -  person BigRetroMike    schedule 23.05.2017


Ответы (1)


через некоторое время я дохожу до точки, где:

Панель поиска - это вещь на стороне игрока, hls в версии v6 поддерживает указание на начальный элемент как на начало v3, где бы он ни был (не более 3 элементов от конца списка)

воспроизведение и поиск основаны на плеере (сафари на ios поддерживает его, другие нет), также ffserver не нужен для продвижения контента.

В конце концов, он отлично работает без поиска, и если требуется поиск, поддержите его на вашей стороне с помощью player / js.player или через промежуточное ПО, такое как прокси-видеосервер.

person BigRetroMike    schedule 11.07.2017