Выполните преобразование (mp4-in, m3u8-out), распознавая, что локальный снимок FS onComplete - это НЕ то, что вам нужно.
Вы не хотите, потому что .m3u8 на выходе имеет контейнерные ссылки (EXTINF: сегменты), используя LOCAL FS и относительные пути к каждому дочернему элементу .ts)
как это:
#EXTINF:4.0
./segment_0.ts << relative path from .m3u8 output
вам понадобится постпроцесс, который перемещает, пересылает все на удаленный:
синхронизирует все локальные файлы .ts в / tmp с вашим CDN на S3
сохраняет / отображает новый URI .ts-S3 для каждого файла .ts в старый локальный fsPath в / tmp
обновляет вывод файла m3u8 свободно, чтобы ссылаться на копию CDN каждого сегмента .ts, содержащего CDN / URI, до .ts
#EXTINF:4.0
https://${s3Domain}/${s3Bucket}/180_250000/hls/segment_0.ts
#EXTINF:4.0
https://${s3Domain}/${s3Bucket}/180_250000/hls/segment_1.ts
#EXTINF:4.0
https://${s3Domain}/${s3Bucket}/180_250000/hls/segment_2.ts
#EXTINF:4.0
- синхронизирует обновленный .m3u8 с CDN
Когда все выполнено, все ссылки из локального снимка FS, когда завершается плавный процесс, изменяются, поэтому все они работают из нового облачного расположения.
Это обходной путь грубой силы
ИЛИ
вы используете службу типа «облачного фронта», которая делает грязную работу за вас.