Intereting Posts

Веб-видео: диапазон байтов до времени

У меня есть PHP-скрипт для потоковой передачи видео с URL-адреса, и я хочу получить время для управления потоком.

Браузеры делают HTTP-запросы с диапазоном байтов при переходе в момент видео.

Запросить заголовки

Accept:*/ * Accept-Encoding:identity;q=1, *;q=0 Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4 Connection:keep-alive Host:h.com If-Range:Tue, 20 Oct 2015 23:38:00 GMT Range:bytes=560855038-583155711 Referer:http://h.com/7743a76d2911cdd90354bc42be302c6946c6e5b4 User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 

Заголовки ответов

 Accept-Ranges:bytes Cache-Control:private, max-age=14400 Connection:Keep-Alive Content-Length:22300674 Content-Range:bytes 560855038-583155711/605162520 Content-Type:video/mp4 Date:Tue, 10 May 2016 11:23:34 GMT Expires:Tue, 10 05 2016 15:23:34 GMT Keep-Alive:timeout=5, max=98 Last-Modified:Tue, 20 Oct 2015 23:38:00 GMT Server:Apache/2.4.7 (Ubuntu) X-Powered-By:PHP/5.5.9-1ubuntu4.16 

Как работает это время на преобразование байтов?

На моем PHP-сервере я пытаюсь получить время от байтового запроса:

 $time_second = $start_request_byte / $video_size_byte * $video_length_second; 

Но это не решение, оно не точное … Любые идеи?

благодаря

Хорошо, я нашел решение, использующее ffprobe!

команда

 $ ffprobe -i 430079256.mp4 -show_frames \ -show_entries frame=pkt_pos \ -read_intervals 01:23%+#1 \ -of default=noprint_wrappers=1:nokey=1 \ -hide_banner -loglevel panic 

Вывод

Смещение байта => 1:23 видео

 209782270 

объяснять

  • -i 430079256.mp4 Видеовход
  • -show_frames Отображать информацию о каждом кадре
  • -show_entries frame=pkt_pos Отображать только информацию о позиции байта
  • -read_intervals 01:23%+#1 Прочитать только 1 пакет после поиска позиции 01:23
  • -of default=noprint_wrappers=1:nokey=1 Не хотите печатать ключ и заголовок и нижний колонтитул раздела
  • -hide_banner -loglevel panic Не хотите печатать баннер ffprob и скрывать мета с помощью «паники», у которых появляются только фатальные ошибки