Моя цель - найти наиболее эффективный способ пересылки / перемотки видео в формате m3u8 с помощью FFMPEG. Я не возражаю нести расходы на CDN или дополнительные серверы, однако конечной целью является доставка контента по следующей спецификации;
- 1280x720
- 30 FPS
- 1 Мбит / с (1000 Кбит)
На этапе тестирования я использую следующие заполнители:
Input: https://adultswimhls-i.akamaihd.net/hls/live/238460/adultswim/main/1/master.m3u8
Output: rtmp://a.rtmp.youtube.com/live2/xfiles
Текущая команда, которую я использую:
ffmpeg -re -i https://adultswimhls-i.akamaihd.net/hls/live/238460/adultswim/main/1/master.m3u8 -c:a aac -c:v copy -f flv rtmp://a.rtmp.youtube.com/live2/xfiles
Текущее использование ресурсов
Проведя некоторые исследования SuperUser и нескольких других доменов, я считаю, что аргумент -c:v copy
эффективно отражает исходный источник, означающий, что мой сервер не перекодирует, поэтому использование ЦП так мало.
Второе, что я использую команду, как;
ffmpeg -re -i https://adultswimhls-i.akamaihd.net/hls/live/238460/adultswim/main/1/master.m3u8 -c:a aac -b:v 1M -b:a XXX -r 30 -s 1280x720 -f flv rtmp://a.rtmp.youtube.com/live2/xfiles (Not tested if this actually works, but just an example)
Я заметил, что загрузка процессора на 5% из первой команды вскоре превращается в твердые 60%+, и я предполагаю, что это потому, что я на самом деле перекодирую. Я беру входной поток, применяя к нему указанные переменные, затем перекодирую и отправляю его в место назначения, которое понятно, и обновление моего сервера не является проблемой, однако я должен выяснить, не ошибаюсь ли я. Это мой первый раз, когда я использую FFMPEG, и я провел все исследования, которые, возможно, смогу привести себя к пониманию, поэтому я прошу кого-то, кто знает их вещи. Мои мысли:
Найти CDN, который предлагает кодирование, ожидая ответа от BelugaCDN, я знаю, что один провайдер CDN предложил его мне за 10 долларов в месяц, что было хорошо, хотя забыл, какой из них.
Обратитесь за помощью в оптимизации второй команды или найдите способ использовать
-c:v copy
и понизить битрейт до 1 Мбит / с, что я не считаю возможным.Подумайте, возможно ли (не уверен, что кто-нибудь узнает об этом или о его услугах) вводить собственный поток битов при использовании CDN, но ограничить исходящий битрейт, чтобы зрители не поглощали сумасшедшую пропускную способность 5 Мбит / с в качестве Сам поток не должен быть таким высоким качеством.
Обновите мой сервер, чтобы я мог обрабатывать до 3-х одновременных потоков со своей перекодировкой, если да, то к каким спецификациям я хотел бы стремиться.
Теперь я знаю, что вы, вероятно, думаете, просто используйте YouTube/Twitch бесплатно ... Ну, видео, которое я предлагаю, является платной услугой и выглядит просто непрофессионально, поэтому это будет моим последним средством.
Спасибо за любую помощь / совет.