Обработка видео. Командная строка
Обработка видео. Командная строка
2021-10-21
·
2 мин. для прочтения
Обработка видео. Командная строка
Содержание
1 Инструментарий
1.1 ffmpeg
- Комплексное решение по обработке видео.
- Установка
- Linux
- Gentoo
1emerge media-video/ffmpeg
- Gentoo
- Linux
1.2 mkvtoolnix
- Инструменты для создания, изменения и проверки файлов формата Matroska.
- Установка
- Linux
- Gentoo
1emerge media-video/mkvtoolnix
- Gentoo
- Linux
2 Задачи
2.1 Перекодирование звуковой дорожки в видеофайле
- Есть видеофайлы (в частности, в формате
mp4
). - При проигрывании на телевизоре нет звука.
- Причина: звуковая дорожка закодирована с частотой дискретизации 48 кГц, а телевизор воспринимает только с частотой дискретизации 44,1 кГц.
- В видеофайле одна видео-дорожка и одна аудио-дорожка.
- Для перекодирования сделан командный файл:
1#!/bin/bash 2# recode-48to44.1 3 4OUTDIR_AUDIO=recoded-audio 5OUTDIR=recoded 6mkdir -p ${OUTDIR} 7mkdir -p ${OUTDIR_AUDIO} 8 9for i in *.mp4 10do 11 NAME=`basename "${i}" .mp4` 12 ffmpeg -i "${i}" -vn -ar 44100 -c:a libfdk_aac -b:a 192k "${OUTDIR_AUDIO}"/"${NAME}".aac 13 mkvmerge --default-language rus -o "${OUTDIR}"/"${NAME}".mkv --language 1:rus "${i}" --default-track 0:1 "${OUTDIR_AUDIO}"/"${NAME}".aac 14done
- Сначала мы с помощью
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
с названиями видео-файлов: - Соединим видеофайлы:
1ffmpeg -f concat -safe 0 -i input.txt -c copy output.mp4
2.3 Объединить несколько файлов webm
- Можно объединить несколько файлов:
1mkvmerge -o output.webm -w file1.webm + file2.webm
2.4 Объединить несколько файлов mkv
- Можно объединить несколько файлов:
1mkvmerge --language "1:ru" --title "Title" --generate-chapters when-appending -o output.mkv file1.mkv + file2.mkv
- Кроме объединения, мы задали язык звуковой дорожки (русский) и каждый файл обозначили как главу.
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.