Конвертация MP4/AAC в MOV/PCM для Davinci Resolve (Linux)
Если добавлять видеофайлы в формате MP4 в Davinci Resolve работающий в Linux, то не будет отображать и воспроизводить звук из видеофайлов. И сразу возникает несколько вопросом: “Почему нет звука на ролике в Davinci Resolve?”, “Из-за чего в Davinci Resolve отсутствует звук в Linux?”, “Почему Davinci Resolve воспроизводит звук в Windows, но не воспроизводит в Linux?” и аналогичные вопросы…
Отсутствие звука в роликах происходит из-за того что внутри медиаконтейнера MP4 звук находится в AAC аудиокодеке, но по лицензионным правам его невозможно воспроизводить в Davinci Resolve работающий в операционных системах Linux. Для этого необходимо во всех роликах конвертировать звук из аудиокодек AAC в PCM или любой другой который поддерживаемый Davinci Resolve. Так как медиаконтейнер MP4 не поддерживает другие аудиокодеки, необходимо будет конвертировать в медиаконтейнер MOV или другой.
1. Установка ffmpeg
Для любых действий с видео, аудио файлами идеально подходит утилита ffmpeg. Она позволяет перепаковать из MP4 медиаконтейнера в MOV с сохранением видеокодека, но конвертировать только аудиокодек.
Устанавливаем ffmpeg в Debian/Ubuntu
apt install ffmpeg
Устанавливаем ffmpeg в Arch Linux
pacman -S ffmpeg
В других Linux дистрибутивах происходит установка аналогично или через свой пакетный менеджер. Также можно установить через установщик пакетов графической рабочей среды.
2. Конвертация MP4/AAC в MOV/PCM при помощи ffmpeg
Открываем консольный терминал из того места где лежит видеофайл.
Конвертируем ролик из MP4 в MOV
ffmpeg -i "old_video.MP4" -vcodec copy -acodec pcm_s24le "new_video.MOV"
Где old_video.MP4 – имя оригинальной файла, new_video.MOV – имя нового файла в формате MOV.
Параметр -vcodec copy означает что видеокодек останется без изменений, то есть видео будет скопировано без конвертации и изменений.
Параметр -acodec pcm_s24le конвертирует звук в аудиокодек PCM 24 бита.
Аудиокодек pcm_s24le (PCM 24 бит) не ухудшит качество звука аудиокодека AAC и он даже избыточен почти во всех случаях. Можно использовать аудиокодек pcm_s16le (PCM 16 бит), тогда конечный файл будет весить немного меньше.
Если файлов немного, можно вручную конвертировать.
3. Скрипт конвертации MP4/AAC в MOV/MP4
Когда файлов очень много, необходимо использовать скрипт для автоматизации конвертации.
Создаем файл convert-for-davinci.sh (имя скрипта может быть любым) следующего содержимого:
#!/bin/bash
# Конфигурация
extension="mov" # Расширение нового файла (медиаконтейнер)
prefix="" # Префикс к новому файлу, есть необходимо
replace="0" # Перезаписывать файл? 0 — нет, 1 — да
for i
do
echo "Processing $i"
filename=$(basename -- "$i") # Получаем имя оригинального файла
filename="${filename%.*}" # Обрезаем расширение файла
# Проверяем существует ли файл с таким именем
if [ -f "${filename}${prefix}.${extension}" ] && ! [ ${replace} = 1 ]; then
echo "${filename}${prefix}.${extension} already exists." # Выводим сообщение, что файл существует
continue # Передаем управление в начало цикла, конвертацию не делаем
fi
# Выполняем кодирование звука в аудиокодека PCM (pcm_s24le), при этом сохраняем видеокодек без изменений
ffmpeg -y -i "$i" -stats -hide_banner -loglevel 0 -vcodec copy -acodec pcm_s24le "${filename}${prefix}.${extension}"
done
Сохраняем файл.
4. Конвертация MP4/AAC в MOV/PCM при помощи скрипта
Копируем скрипт в каталог где находятся видеофайлы которые необходимо конвертировать и открываем консоль.
Разрешаем исполнение скрипта
chmod +x convert-for-davinci.sh
где convert-for-davinci.sh – имя созданного/скопированного скрипта.
Используем следующею команду, чтобы конвертировать все файлы в каталоге
./convert-for-davinci.sh *
Можно конвертировать видеофайлы только с определенным расширением, указав например только файлы MP4 (*.MP4 – расширение файлов для конвертации)
./convert-for-davinci.sh *.MP4
Обрати внимание, что в Linux регистр букв в именах файлов имеет значение. Файл example.MP4 и example.mp4, это два разных файла.
Все файлы успешно конвертированы, можно их добавлять в Davinci Resolve и пользоватся.