Пакетное преобразование .mp4 в разделенные по HLS потоки - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть система настройки для записи видео с нескольких ip-камер в mp4-файлы в конце каждого дня, создается новая папка, и на следующий день сохраняется ценность видео с камеры здесь и так далее.

Я пытаюсь преобразовать каждый из этих файлов mp4 в сегментированные потоки hls. Я могу без проблем конвертировать один файл, используя следующий код

ffmpeg -i cam10029.mp4 -threads 0 -vf scale=1280:-2:force_original_aspect_ratio=decrease -c:a aac -ar 48000 -b:a 128k -c:v h264 -profile:v main -crf 20 -g 48 -keyint_min 48 -sc_threshold 0 -b:v 1500k -maxrate 2675k -bufsize 3750k -hls_time 6 -hls_playlist_type vod -hls_segment_filename index_%03d.ts index.m3u8

, но в каждой папке иногда может быть 100-200 видео. это и выполнение этого одно за другим требует когда-либо менять имя и перезапускать команду и необходимость проверять, когда это сделано

я пытался использовать что-то вроде этого

for i in *.mp4;
  do name=`echo "$i" | cut -d'.' -f1`
  echo "$name"
  ffmpeg -i "$i" "${name}.mov"
done

к сожалению, это не сработало windows в пакетном файле он просто мерцал на экране, а затем исчезал.

Я сейчас использую Ubuntu 18 и задаюсь вопросом, есть ли способ сделать это лучше здесь?

что бы я хотел Чтобы сделать это, запустите, скажем, один файл convert. sh, и найдите все видео в папке, затем создайте новую папку для первого видео с тем же именем, что и видео. o затем преобразуйте его в сегментированный поток и сохраните файлы .ts и .m3u8 в этой папке, удалите оригинальный видеофайл, затем перейдите к следующему файлу и делайте то же самое, пока все файлы не будут конвертированы в папке, чтобы я мог затем связаться с Файлы m3u8 для каждой камеры через мое приложение android

...