
Стриминг видео с сервера очень сильно кушает канал. Поэтому появляется мысль кешировать видео через CloudFlare.
При этом надо сохранить возможность перемотки и разбить файлы на небольшие куски, чтобы CF ничего не заподозрил, а так же не попасть под лимит который не кешируется.
Будем использовать Uppod плеер.
1. Разбить видео
2. Создать страницу сайта
UP 19.07 Трафик продолжает снижаться



1. Чтобы разбить видео на много частей используем ffmpeg:
1 |
ffmpeg -i 0012.mp4 -c copy -f segment -segment_time 10 -segment_list video/playlist.m3u8 video/fff%d.ts |
Информация об оригинале 2 потока видео и озвучка.
1 2 |
Stream #0.0(jpn): Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 1128 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc Stream #0.1(rus): Audio: aac, 48000 Hz, stereo, s16, 127 kb/s |
0012.mp4 — оригинал видео
segment_time — разбиваем на части по 10 секунд
segment_list — генерируем «playlist» для нашего файла
fff%d.ts — шаблон названия файлов на выходе fff0.ts…fff999.ts
Итого у нас в папке video будут:
fff0.ts…fff150.ts части видео
playlist.m3u8 плейлист
2. Теперь страница сайта с плеером.
1 2 3 4 |
<script src="uppod-0.8.3.js" type="text/javascript"></script> <div class="player" id="videoplayer"></div> <script type="text/javascript">this.player = new Uppod({m:"video",uid:"videoplayer",file:"video/playlist.m3u8"});</script> |
uppod.js качаем с uppodа
video/playlist.m3u8 — адрес плейлиста.