У меня есть система настройки для записи видео с нескольких 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