Я занимаюсь разработкой сайта для пробирок, и в настоящее время у меня возникают проблемы с форматом H.264. Я заметил, что YouTube поместил их видео высокой четкости в контейнер MP4, поэтому логически я сделал то же самое.
Затем я установил mod_h264_streaming
для lighttpd, чтобы обеспечить работу потоковой передачи и очистки временной шкалы.
Проблема заключается в том, что большие файлы (> 500 МБ при несколько высоком разрешении) тратятся вечно, чтобы даже начать буферизацию (я читал, что Flowplayer и другим Flash-плеерам сначала нужно загружать метаданные). Я переместил атом xmov в начало файла с помощью MP4Box (я тоже попробовал Qt QuickStart), но это не помогло.
Далее я прочитал, что мне нужно чередовать звуковые дорожки, поэтому я тоже это сделал. Это не вызвало никаких изменений: видео все еще были медленными.
Поэтому я попытался поместить точно такой же фильм H.264 в контейнер FLV, и буферизация воспроизведения началась почти мгновенно - без замедления.
Так чего мне здесь не хватает? Зачем мне выбирать контейнер MP4 с модулем mod_264_streaming
, который кажется очень медленным, вместо обычного контейнера FLV со встроенным в mod_flv_streaming
? Очевидно, что многие сайты выбирают контейнер MP4, но я не понимаю, почему.
И как дополнительный вопрос, я попытался использовать <video>
HTML5, чтобы попробовать тот же фильм H.264 MP4, и очистка была молниеносной ! Я заглянул в лог-файл lighttpd и заметил, что Flash-плееры добавляют video.mp4?start=234
каждый раз, когда убирается временная шкала, тогда как браузеры, использующие собственный тег HTML5 <video>
, не делают этого. Это какое-то ограничение Flash? Почему потоковая передача Flash не может быть такой же быстрой, как потоковая передача HTML5?