LINUX.ORG.RU
ФорумJob

Написать скрипт для создания HLS в мультиразрешении

 ,


1

1

Нужно что-то вроде: https://ottverse.com/hls-packaging-using-ffmpeg-live-vod/ https://docs.peer5.com/guides/production-ready-hls-vod/

Только рабочее.

Необходимо иметь возможность явно задавать:

  • Используемый кодек (нужны и H264, и H265).
  • Количество вариантов сжатия видео (разных разрешений и битрейтов, с этим у меня проблем нет).
  • Аналогично для аудио. AAC с разными битрейтами.

На выходе должен быть плейлист и каталоги с вложенными вариантами.

https://hls-js.netlify.app/demo/ Подобный плеер должен показывать переключения между потоками и т.п.

Я кое-как собрал скрипт способный это делать без звука, но при попытках добавить еще и звук - «Stream map ‘a:0’ matches no streams. To ignore this, add a trailing ‘?’ to the map.» И я хз что с этим делать.

Хочется уже кому-то более умному заплатить денег.


Почти никогда этим (видеоконвертерами и ffmpeg) не занимался, но стало интересно попробовать :) Если ещё актуально.

И сразу скажу, что результат, конечно, не быстрый будет, так как вникать придётся в базовые вещи.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Давай попробуем. Может быть, ты лучше меня мануалы читаешь.

https://trac.ffmpeg.org/wiki/Encode/H.264 https://trac.ffmpeg.org/wiki/Encode/H.265 Про кодирование в сами кодеки.

В старт посте пара ссылок. Первый пример просто не работает, что-то не так с картой сборки плейлиста из видео и аудио вместе. По второй ссылке файлы создает… но без звука.

Вот в сути весь мой затык в том, чтоб понять как заставить в эти ts’ки еще звук писать.

А уж «как жать в 264\265 оптимально в своей ситуации» я разберусь. (265 хорош тем, что в даст необходимые 8К).

dk__
() автор топика
Последнее исправление: dk__ (всего исправлений: 1)
Ответ на: комментарий от dk__

Первый пример просто не работает, что-то не так с картой сборки плейлиста из видео и аудио вместе.

Я так понял, в первом случае сам ffmpeg отказывается собирать?

По второй ссылке файлы создает… но без звука.

Беззвучие на чем проявилось? В обычном проигрывании на vlc или mpv? На семплах из примера или как?

Я к чему спросил, что мне надо как-то однозначно повторить результат, чтобы недоразумения не было.

anonymous_incognito ★★★★★
()
Последнее исправление: anonymous_incognito (всего исправлений: 1)
Ответ на: комментарий от hizel

Так понимаю, оно больше про стрим. А у меня VOD.

Ну и надо свое локальное, полностью конфигурируемое. А не разбираться с ограничениями стороннего, пусть и трижды прекрасного, сервиса.

Мне надо получить эту удочку, а потом уже всяко разно ее использовать.

dk__
() автор топика

map ‘a:0’

Херь.

"-map X:Y" где «X» - индекс входного файла, а «Y» - индекс стрима внутри этого файла. Так, "-map 0:a" даст аудиодорожку из файла указанного первым для "-i", не скажу что так лучше не делать, но в файле (контейнере) может быть больше одной аудиодорожки и при "-map 0:a" ффмпег возьмет первую попавшуюся, таким образом лучше написать "-map 0:1", где «1» -индекс нужного аудиострима.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Ты можешь просто сделать рабочий скрипт? Не за спасибо.

dk__
() автор топика
Ответ на: комментарий от dk__

Сейчас проверил работу из второго примера https://docs.peer5.com/guides/production-ready-hls-vod/ у меня получилось, что если проигрывать сгенерированный плейлист, например,

mpv 360p.m3u8 то звук есть

если пытаться проиграть отдельные *.ts файлы, то звук есть только у первого, у остальных сообщение об ошибке декодирования аудиодорожки.

Прикольно. Попробую дальше разобраться.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от hizel

Крутяк. Но все равно мне нужен просто голый скрипт к ффмпегу. В т.ч. чтоб можно было на его основе и свои пакеты для бубунты делать. Ну зашивать во что-то свое.

dk__
() автор топика

Товарищи, это рекорд.

Три дня убито на эту проблему.

Знаете в чем оказалось дело? У меня во входящем файле не было звуковой дорожки в принципе. Я для теста взял свой видос покороче и забыл, что он специально не имел в себе звука.

dk__
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.