История изменений
Исправление ZenitharChampion, (текущая версия) :
Вот записываем мы видео с экрана:
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, :
Вот записываем мы видео с экрана:
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 частей. Все их потом надо склеивать. И после записи каждого видео надо синхронизировать аудио и видео! Это адище!
В общем, спасибо за статью!
Исходная версия ZenitharChampion, :
Вот записываем мы видео с экрана:
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 частей. Все их потом надо склеивать. И после записи каждого видео надо синхронизировать аудио и видео! Это адище!
В общем, спасибо автору за статью.