Основы работы с Linux. / Команды bash. / Пишем команду склеивания видео файлов.
Разберем что представляет собой команда.
Любая команда - это программа (файл), написаная на каком-то языке.
Обычно в Linux команды пишут на bash, но она может быть написана на чем угодно включая python.
Чтобы команда стала доступной для выполнения нужно выполнить 2 условия.
-
Файл, описывающий ее программу должен иметь права на выполнение.
chmod +x myfile.py
-
Файл должен находится в одном из путей, указанных в $PATH.
Файл команды может быть текстовым (читабельным) или бинарным - результат компиляции таких языков как C++.
Файл .bash_aliases
Запускается каждый раз при запуске консоли и в него записываются псевдонимы команд.
Например
alias vjoin=’~/www/doc/shell/videojoin.sh’
В данном случае при запуске команды vjoin в консоле будет выполнен файл videojoin.sh в домашнем каталоге.
Файл videojoin.sh
rm ./output.mp4
echo '' > list.txt
for entry in ./*.mp4
do
echo "file $entry" | sed -e "s/.\///" -e "" >> list.txt
done
ffmpeg -f concat -i list.txt -codec copy output.mp4
Эта небольшая программа отсортирует и склеит видеоролики из каталога в один файл.
1 - удаляем файл output.mp4 в текущей папке
2 - создаем пустой файл list.txt
3 - проходим по всем файлам видео с расширением mp4
4 - записываем имя каждого в тектовик
5 - запускаем конвертацию по списку