Обработка видео. Командная строка
Обработка видео. Командная строка
Содержание
1 Инструментарий
1.1 ffmpeg
- Комплексное решение по обработке видео.
- Установка
- Linux
- Gentoo
emerge media-video/ffmpeg
- Gentoo
- Linux
1.2 mkvtoolnix
- Инструменты для создания, изменения и проверки файлов формата Matroska.
- Установка
- Linux
- Gentoo
emerge media-video/mkvtoolnix
- Gentoo
- Linux
2 Задачи
2.1 Перекодирование звуковой дорожки в видеофайле
- Есть видеофайлы (в частности, в формате
mp4
). - При проигрывании на телевизоре нет звука.
- Причина: звуковая дорожка закодирована с частотой дискретизации 48 кГц, а телевизор воспринимает только с частотой дискретизации 44,1 кГц.
- В видеофайле одна видео-дорожка и одна аудио-дорожка.
- Для перекодирования сделан командный файл:
#!/bin/bash # recode-48to44.1 OUTDIR_AUDIO=recoded-audio OUTDIR=recoded mkdir -p ${OUTDIR} mkdir -p ${OUTDIR_AUDIO} for i in *.mp4 do NAME=`basename "${i}" .mp4` ffmpeg -i "${i}" -vn -ar 44100 -c:a libfdk_aac -b:a 192k "${OUTDIR_AUDIO}"/"${NAME}".aac mkvmerge --default-language rus -o "${OUTDIR}"/"${NAME}".mkv --language 1:rus "${i}" --default-track 0:1 "${OUTDIR_AUDIO}"/"${NAME}".aac done
- Сначала мы с помощью
ffmeg
перекодируем аудио-дорожку:-vn
: игнорирование видео-дорожек;-ar 44100
: частота дискретизации 44,1 кГц;-c:a libfdk_aac
: задаём кодек для формата AAC;-b:a 192k
: задаём битрейт.
- С помощью
mkvmerge
сливаем файлы в новый (форматаmkv
):--default-language rus
: задаём язык по умолчанию для дорожек;--language 1:rus
: меняем язык аудио-дорожки в исходном файле;--default-track 0:1
: ставим новую звуковую дорожку дорожкой по умолчанию.
2.2 Объединить несколько файлов mp4
- Дано: набор файлов вида
video1.mp4
, расположенных в алфавитном порядке. - Создадим файл
input.txt
с названиями видео-файлов:for i in $(ls *.mp4 | sort) do echo file \'$(readlink -f "${i}")\' >>input.txt done
- Соединим видеофайлы:
ffmpeg -f concat -safe 0 -i input.txt -c copy output.mp4