![CloudFlare Caching](http://dsro.ru/gyazo/images/90e5d5ca2367c7a41ee19d789b5c.png)
Стриминг видео с сервера очень сильно кушает канал. Поэтому появляется мысль кешировать видео через CloudFlare.
При этом надо сохранить возможность перемотки и разбить файлы на небольшие куски, чтобы CF ничего не заподозрил, а так же не попасть под лимит который не кешируется.
Будем использовать Uppod плеер.
1. Разбить видео
2. Создать страницу сайта
UP 19.07 Трафик продолжает снижаться
![CloudFlare Video Cache](http://dsro.ru/gyazo/images/d6e0e68eff110946567f1e0b00a2.png)
![CloudFlare Video Cache](http://dsro.ru/gyazo/images/2c7ceb785612c345e74a63c108ab.png)
![CloudFlare Video Cache](http://dsro.ru/gyazo/images/a18da4a2eaf92983c4dcca729038.png)
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 — адрес плейлиста.