Основы работы с Linux. / Команды bash. / Пишем команду склеивания видео файлов.

Разберем что представляет собой команда.

Любая команда - это программа (файл), написаная на каком-то языке.

Обычно в Linux команды пишут на bash, но она может быть написана на чем угодно включая python.

Чтобы команда стала доступной для выполнения нужно выполнить 2 условия.

  1. Файл, описывающий ее программу должен иметь права на выполнение.

    chmod +x myfile.py

  2. Файл должен находится в одном из путей, указанных в $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 - запускаем конвертацию по списку