2014-11-02 10 views
0

Я пытаюсь сделать что-то вроде этого. Я хочу передать FLV или MP4-файл в свой плеер на сайте (я использую flowplayer). Я получаю ссылку на видео с помощью CURL и устанавливаю в клипе «flowplayer» этот url. Но у меня есть одна проблема. Я не могу перемотать вперед, когда он не загружен.Получить поток из FLV (PHP, CURL)

Можно ли начать с половины видео, если я передаю файл из-за пределов моего хоста ??

ответ

0

Это зависит от того, содержат ли удаленные видеоролики соответствующие метаданные.

Чтобы начать воспроизведение с середины видео, игрок должен сначала загрузить начало видео, проанализировать событие onMetadata и проанализировать массив, содержащий отображение времени ключевого кадра в позиции байта.

Когда сбрасывали в инструменте flvmeta, метаданные могут выглядеть следующим образом:

{ 
    'hasMetadata' => true 
    'hasVideo' => true 
    'hasAudio' => true 
    'duration' => 76.826 
    'lasttimestamp' => 76.8 
    'lastkeyframetimestamp' => 74.449 
    'width' => 608 
    'height' => 336 
    'videodatarate' => 472.876919109 
    'framerate' => 23.3124202744 
    'audiodatarate' => 31.25 
    'audiosamplerate' => 22000 
    'audiosamplesize' => 16 
    'stereo' => false 
    'filesize' => 5036611 
    'videosize' => 4671635 
    'audiosize' => 342596 
    'datasize' => 5017666 
    'metadatacreator' => 'flvmeta 1.1-dev' 
    'metadatadate' => Wed, 23 Dec 2009 17:37:20 Paris, Madrid 
    'audiocodecid' => 2 
    'videocodecid' => 2 
    'audiodelay' => 0 
    'canSeekToEnd' => false 
    'hasCuePoints' => false 
    'cuePoints' => [ 
    ] 
    'hasKeyframes' => true 
    'keyframes' => { 
     'times': [ 
      0 
      0.5 
      0.709 
      1.21 
      1.71 
      2.211 
      2.711 
      3.212 
      3.712 
     ] 
     'filepositions': [ 
      3534 
      30982 
      47899 
      71050 
      96847 
      123067 
      161269 
      194445 
      225145 
     ] 
    } 
} 

Это позволяет игроку знать общую длительность файла, и обратиться к ближайшему ключевому кадру из нужного времени в видео с помощью частичного HTTP-запроса вместо ожидания загрузки файла до нужной точки.

Есть несколько инструментов для ввода этих метаданных, таких как flvtool2, yamdi и мой собственный flvmeta. Это будет работать, если вы можете изменить удаленные файлы или если они уже содержат эти метаданные.