LINUX.ORG.RU

Озвучка видео в линуксе

 , , ,


5

2

ЭТО НЕ ВОПРОС! ЭТО ГОТОВОЕ РЕШЕНИЕ!

sudo cast AP, ist76. Чот больше и не могу вспомнить кому будет интересно.

В начале 2000-х под офтопиком у меня был опыт озвучки короткометражки (не столько в микрофонном смысле, сколько в комплексном, наложение звуков взрывов, ударов, криков, музыки, автоматизация, эффекты, мастеринг). И теперь вот понадобилось сделать то же самое в онтопике.

Конечно, мое решение не единственное. Но я опишу здесь то, что взлетит в 99.999% случаев, т.к. состоит из проверенного временем минимального набора ПО. Решение дающее реально качественный результат на выходе.

Сейчас будет о том, как удобно и правильно озвучить абсолютно любое видео, в том числе, с возможностью переозвучить (ревер комнаты, шум, тихие фразы) диалоги из видеоряда.

Сначала теория.

Главные комплексные вопросы: Как синхронизировать начитку синхронного перевода или озвучки с исходным звуком и видеорядом? Как применить аудиоэффекты и чтобы каждый был в свое время, место и с определенными настройками? Как сделать 5.1 или вклиниться в исходный 5.1 или просто сделать 2.0 но на уровне профессионального качества?

Обычно начитывают в микрофон в отдельной программе и потом импортируют кусками в видеоредактор в дополнительную дорожку, подгоняя расположение фраз во времени с видеорядом. Или начитывают прямо в видеоредакторе. Но видеоредактор, он на то и видео, что не аудио и не имеет возможности полноценно работать со звуком. А если нужно добавить звук очень синхронно как в клипах? Или накидать синхронных шумов (пердежь, бьющееся стекло, выстрелы, скрип шагов по снегу, etc..)?

Выводы:

1) Нам нужна DAW (многодорожка, VST(i), LADSPA, automation и прочее).
2) DAW должна уметь мониторинг видео!

Для себя я выбрал Ardour.

Но тут есть нюанс. Ardour поддерживает видеодорожку, но с какой-то там конкретной версии. К тому же, эта шляпа поставляется в качестве отдельной фичи, и нужно конпелять с этим патчем (возможно я и плохо смотрел, тем не менее, зачем искать конкретные версии, возможно этой не будет в репозитории вашей системы или не будет готового пакета). Да и сам патч стартует сервер слушающий сокет и реализует какой-то свой протокол синхронизации. Это как удаление зубов через задний проход. А еще в этом патче есть php (по-ха-пэ!) — ну его нахер этот патч. Так что просто берем тот Ardour который есть в вашей системе.

ГЛАВНОЕ:

Не нужно искать DAW которая умеет видеомониторинг из коробки!
Любая нормальная DAW в линуксе умеет в jack!
Т.е. вы можете взять другую DAW вместо Ardour, я же рассказываю про Ardour.


Вот оно: jack, Ardour, xjadeo. Эти компоненты работают так, как нам нужно. Ardour и xjadeo синкуются через jack.

Описываю по шагам ваши действия:

1) Заканчиваем работу над видеороликом в видеоредакторе не обращая внимания на качество звука — тут главное качество видео.
2) Пережимаем с помощью ffmpeg видеоролик в *.avi (без аудио) говняного качества и/или без сжатия (для того чтобы воспроизведение видео не жрало ресурсы).
3) С помощью ffmpeg вычленяем исходное аудио из качественного видеоролика.
4) Стартуем jack (ставим желаемый samplerate, например 48000гц).
5) Создаем в Ardour проект (внимание на samplerate и fps!).
6) Импортируем в проект исходное аудио, вычленненое ранее с помощью ffmpeg (2.0, 5.1, какое оно там у вас было не важно).
7) Устанавливаем в Ardour опшн «Positional sync source» в значение «JACK».
8) Стартуем xjadeo: $ xjadeo -i 3 /path/do/govno-quality.avi

Картинко

Теперь можно полноценно работать над звуком! Можете начитывать в микрофон прямо просматривая видео. Делать дубли. Двигать, резать, клеить начитанное прямо в DAW и проверять в реальном времени как оно сходится с тем что происходит в видеоряде или соотносится с оригинальным аудио. Добавлять любое кол-во дорожек. Микшировать так как хочется. Применять эффекты и автоматизацию.

После того как вы завершили работу с звуковой частью вашего фильма — рендерите готовый проект в *.wav (умеет и 5.1 например) и склеиваете через ffmpeg старое видео и новое аудио в результирующий видеофайл. Все!

★★★★★

Последнее исправление: deep-purple (всего исправлений: 14)

Меня надо было кастовать. Всегда интересны подвижки с мультимедиа в Linux-е. Но что-то мне не понравилось, уж очень много конвертирования туда-сюда.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Конверты туда-сюда ты можешь и не делать если тебе ресурсы машинки не жалко. В целом же это подход «разделяй и властвуй», «мухи отдельно от котлет» и все такое — это есть гибкость.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от peregrine

Как будто в других платформах нет этих конвертаций.

stave ★★★★★
()
Ответ на: комментарий от deep-purple

Конверты туда-сюда ты можешь и не делать если тебе ресурсы машинки не жалко. В целом же это подход «разделяй и властвуй», «мухи отдельно от котлет» и все такое — это есть гибкость.

Человек просто не работал никогда с непожатым видео. Я уж молчу про 4к :)

stave ★★★★★
()
Ответ на: комментарий от Aceler

Учитывая что уже двое застарили этот тред — для них оно важное, нужное, интересное. Я описал комплексные эффективные выбор и действия которые приведут к качественному результату.

Ты же докопался до одного слова — названия программы. В чем заключается смысл твоего выперда?

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Вот записываем мы видео с экрана:

ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1920x1080 -i :0.0 -acodec pcm_s16le -vcodec libx264 -preset ultrafast -threads 0 output.mkv

Вот записали. Всё нормально.

Вот мы отключили PulseAudio, потому что оно - дерьмо. Поменяли -f alsa -ac 2 -i pulse на -f alsa -ac 2 -i hw:0. Вот мы записали ещё одно видео. И - о ужас! В какой-то момент звук перестаёт записываться, а в консоль сыпятся ошибки в больших количествах: ALSA buffer xrun!

Что вы ни пробуете - всё не помогает. И тут приходит идея: синхронно запустить:

ffmpeg -f x11grab -r 30 -s 1920x1080 -i :0.0 -vcodec libx264 -preset ultrafast -threads 0 output-video.mkv

и

ffmpeg -f alsa -ac 2 -i hw:0 -acodec pcm_s16le -threads 1 output-audio.mkv

И - о чудо! Весь звук пишется нормально!

И вот теперь представьте, что вы записываете видео из 10 частей. Все их потом надо склеивать. И после записи каждого видео надо синхронизировать аудио и видео! Это адище!

Подробнее: https://trac.ffmpeg.org/ticket/615 В общем, спасибо за статью!

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 2)
Ответ на: комментарий от deep-purple

В том, что это специальная программа для такого действа, известная уже лет 10. А ты тут хайлайтишь людей, как будто что-то новое им хочешь рассказать

Aceler ★★★★★
()
Ответ на: комментарий от Aceler

Почему они узнают об этом только сейчас? Увидел что им об этом рассказывают? Ну так зайди и подтверди по нормальному, да, есть такое, да все правильно написано. Зачем лужу пузырить?

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от Aceler

Я говорю что ты 10 лет назад не рассказал им? Лично мне понадобилось полтора часа найти решение и 20 минут написать сюда текст. Но я уже знал что искать, т.к. знаю принцип работы со звуком для озвучки.

deep-purple ★★★★★
() автор топика
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от deep-purple

Я говорю что ты 10 лет назад не рассказал им?

Скажем так, AP 10 лет назад рассказал мне ;-)

Aceler ★★★★★
()
Ответ на: комментарий от ist76

В такой форме, с брызгами эмоций, которые преобладают над содержательной частью, не канает на прикреплёнку.

toney ★★★★★
()
Ответ на: комментарий от deep-purple

Я, кстати, не понял, твоих проблем с Ardour 3+.

Во-первых, что это ещё за «патч», с которым надо перекомпилять программу? Если кто-то из мейнтейнеров не собирает программу с harvid, этому кому-то надо оторвать руки.

Во-вторых, какая разница, что там за протокол? Тебе нужно готовое решение или непонятные прыжки вокруг того, что и так работает? Протокол, кстати, называется HTTP. Он такой свой, такой особенный :)

Ну и да — я не очень понял, почему мне должно быть интересно читать про то, что я и так уже лет пять-шесть делаю. Ну т.е. прикольно, что ты это освоил, но я про это писал тут в тредах полдюжины раз уже наверно. Крайний раз — недели две назад что ли.

В общем, я за тебя рад, но остаюсь в некотором недоумении.

AP ★★★★★
()
Ответ на: комментарий от AP

ну не интересно - не читай. здесь чел расписал подробно, а ты писал обрывками в стиле «а вот он я»

anonymous
()
Ответ на: комментарий от Aceler

И я об этом писал:

Конечно, мое решение не единственное. Но я опишу здесь то, что взлетит в 99.999% случаев, т.к. состоит из проверенного временем минимального набора ПО.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от AP

Я, кстати, не понял, твоих проблем с Ardour 3+

А я и не сказал что были проблемы. Я описал применяемые костыли в контексте Ardour.

«патч» ... harvid

Он и есть.

какая разница, что там за протокол? HTTP

У джека есть нормальный протокол синхронизации. А там поверх хттп еще и свой протокол т.к. голый хттп ничего не синхронизирует. Костыль же.

deep-purple ★★★★★
() автор топика

Где-то года 4 или 5 лет назад экспериментировал с Ardour и xjadeo. Да, в целом все работало хорошо. Моей основной деятельностью тогда была звукорежиссура в кино, работал в Nuendo. Дома экспериментировал со свободными программами и эта связка работала хорошо. Но в то время, не знаю как сейчас, Ardour не обладал нужным функционалом по монтажу и был сыроватым, нестабильным. Для небольших проектов счел его все же не готовым. В общем от связки Ardour, jack и xjadeo остались хорошие воспоминания :-)

anonymous
()
Ответ на: комментарий от deep-purple

Харвид — это не патч.

Алсо, Робин когда делал харвид, исходил из реалий, в которых видеопоток может подсасываться с сервера, стоящего в стойке. Назови более правильное техническое решение для таких случаев. Без «костылей».

AP ★★★★★
()
Ответ на: комментарий от deep-purple

Я так чувствую, ты скоро для себя откроешь, что в студиях бывают серверы, роутеры и свитчи, MADI и прочее щасте.

AP ★★★★★
()

Неправильный заголовок, но информация полезная, спасибо

Правильный: как прикостылять к аудиоредактору отдельное видео

А озвучивать можно при помощи расстановки тайм-меток, для этого можно использовать AegiSub, на выходе получаем тайминг с точностью до сотых секунды (мало конечно, но в принципе хватает), а сам звук готовить в Аудасити. Фактически, весь софт который нужен: ffmpeg + audacity + aegisub. Практика показала вполне неплохие результаты + разделение труда ускоряет продакшен.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.