Перейти к содержанию
Asterios

FFmpeg для записи видео и звука (эксперименты)


zuz

Рекомендуемые сообщения

Всем привет. Хочу поделиться опытом использования FFmpeg. Этим инструментом можно записывать, конвертировать, а также стримить видео и аудио.
Если тонко все настроить можно добиться боле лучшей картинки, чем при использовании допустим той же obs. И что, не мало важно, без рендера. 
Видео сразу можно грузить на Ютуб. В настройках записи FFmpeg указаны стандартные параметры, которые можно скорректировать по своему усмотрению для баланса качества и размера файла.
FFmpeg позволяет использовать множество кодеков, что делает его универсальным средством для любого типа железа и конфигурации.
Сразу скажу, что я не профи, а делюсь тем, с чем получилось немного разобраться. Приветствуется критика и исправление ошибок. 
FFmpeg будем использовать в скриптах, что позволит упростить понимание и автоматизировать процесс. От пользователя нужно будет только подредактировать текст настроек FFmpeg, при желании, и все.
Для проверки устройств, с которыми может работать  FFmpeg есть команда для терминала: ffmpeg -list_devices true -f dshow -i dummy

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

Скрытый текст
[dshow @ 000001e4ab3c0440] "USB2.0 HD UVC WebCam" (video)
[dshow @ 000001e4ab3c0440]   Alternative name "@device_pnp_\\?\usb#vid_2b7e&pid_b597&mi_00#7&10c33a28&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
[dshow @ 000001e4ab3c0440] "screen-capture-recorder" (video)
[dshow @ 000001e4ab3c0440]   Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{4EA69364-2C8A-4AE6-A561-56E4B5044439}"
[dshow @ 000001e4ab3c0440] "OBS Virtual Camera" (none)
[dshow @ 000001e4ab3c0440]   Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{A3FCE0F5-3493-419F-958A-ABA1250EC20B}"
[dshow @ 000001e4ab3c0440] "Microphone (C-Media(R) Audio)" (audio)
[dshow @ 000001e4ab3c0440]   Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{257C02F9-C948-4960-A974-755869C15688}"
[dshow @ 000001e4ab3c0440] "virtual-audio-capturer" (audio)
[dshow @ 000001e4ab3c0440]   Alternative name "@device_sw_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\{8E146464-DB61-4309-AFA1-3578E927E935}"
[dshow @ 000001e4ab3c0440] "Line 1 (Virtual Audio Cable)" (audio)
[dshow @ 000001e4ab3c0440]   Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{13039C72-8BFB-49DC-A601-A37F5EBE803D}"
[dshow @ 000001e4ab3c0440] "AI Noise-cancelling Input (ASUS Utility)" (audio)
[dshow @ 000001e4ab3c0440]   Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{389795C2-CD53-4CAF-9403-078961B82614}"
[dshow @ 000001e4ab3c0440] "System Virtual Line (ASUS Utility)" (audio)
[dshow @ 000001e4ab3c0440]   Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{631D166E-C820-4BE9-9AC4-4A709FE98658}"

 

Настройка записи звука: 

Для записи звука с помощью FFmpeg есть некоторые моменты. Стандартно писать звук не выйдет.  В настройках записи FFmpeg нужно указывать конкретное устройство, с которого будет писаться звук. Для этого нам нужен драйвер Screen.Capturer.Recorder. Его  нужно скачать и установить с github. Ссылка на github. После установки драйвера появится устройство: "virtual-audio-capturer" (audio). Которое мы в скриптах и будем использовать для записи звука. Этот драйвер позволит писать системный звук, - "звук с экрана". Тесть звук с игры или болтовню сопартийцев в мамбле.

Создание скрипта(батника):

Открыть блокнот или Notepad++, вставить туда текст(код скрипта), сохранить. При сохранении выбрать "все файлы", присвоить имя файла с расширением .bat. Пример: recording.bat  /ps:не использовать в именах папок и скриптов кириллицу и пробелы/

Установка ffmpeg

Скрытый текст

Текста много, но все достаточно просто:
1. скачать сборку ffmpeg для Windows и распаковать в удобном месте. Создать в корне диска C папку ffmpeg, перенести сюда содержимое распакованного архива. Ссылка на FFmpeg, качать ffmpeg-git-full.7z(фул сборка)
2.Добавить FFmpeg в переменную среды PATH:
Расскажу на примере Windows 11:
-пкм по мой компьютер - "Свойства"
-"Дополнительные параметры системы".
-Во вкладке "Дополнительно" нажмите на кнопку "Переменные среды".
-В разделе "Переменные среды" найдите переменную среды PATH в списке системных переменных и выберите ее для редактирования.
-Нажмите "Изменить" и добавьте путь к каталогу с исполняемыми файлами FFmpeg (например C:\ffmpeg\bin)
Нажмите "OK", чтобы закрыть все окна.
3.Проверка установки:
-Откройте командную строку и введите команду ffmpeg -version. Если установка прошла успешно, вы увидите информацию о версии FFmpeg.
Теперь FFmpeg должен быть установлен и готов к использованию на вашем компьютере.

Универсальный скрипт для записи видео и звука (включает в себя все популярные кадыки)

Скрытый текст

Код скрипта:

@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion

rem Проверка наличия ffmpeg
where ffmpeg >nul 2>nul || (
    echo FFmpeg не найден. Убедитесь, что он установлен и находится в PATH.
    exit /b 1
)

rem Получение текущей даты и времени
for /f "tokens=2 delims==" %%I in ('"wmic os get localdatetime /value"') do set datetime=%%I
set datetime=%datetime:~0,4%-%datetime:~4,2%-%datetime:~6,2%_%datetime:~8,2%-%datetime:~10,2%-%datetime:~12,2%

rem Путь сохранения видео
set "base_path=D:\video\fraps"
set "date_folder=%base_path%\%datetime:~0,10%"
if not exist "%date_folder%" (
    mkdir "%date_folder%" || (
        echo Не удалось создать папку "%date_folder%".
        exit /b 1
    )
)

rem Настройки записи видео
echo кодеки программного кодирования (используется процессор)1,2,3
echo кодеки аппаратного ускорения на встроенной графике Intel(работоспособность не проверялась) 4,5
echo кодеки аппаратного ускорения на встроенной графике AMD(работоспособность не проверялась) 6,7
echo кодеки аппаратного ускорения AMD(используется видеокарта AMD,работоспособность не проверялась) 8,9
echo кодеки аппаратного ускорения NVIDIA(используется видеокарта NVIDIA)10,11.12

set "video_settings[1]=-c:v libx264 -video_size 1920x1080 -framerate 30 -crf 18 -preset slow -tune film"
set "video_settings[2]=-c:v libx265 -vf \"scale=1920:1080\" -framerate 30 -crf 23 -preset medium -x265-params keyint=60"
set "video_settings[3]=-c:v libaom-av1 -video_size 1920x1080 -framerate 30 -crf 20 -b:v 10M -cpu-used 1 -cpu-used 4"
set "video_settings[4]=-c:v h264_qsv -s 1920x1080 -r 30 -preset slow -b:v 5M -look_ahead 1"
set "video_settings[5]=-c:v hevc_qsv -s 1920x1080 -r 30 -preset slow -b:v 5M -look_ahead 1"
set "video_settings[6]=-c:v h264_amf -s 1920x1080 -r 30 -preset quality -b:v 5M"
set "video_settings[7]=-c:v hevc_amf -s 1920x1080 -r 30 -preset quality -b:v 5M"
set "video_settings[8]=-c:v h264_amf -usage transcoding -quality quality -b:v 5M"
set "video_settings[9]=-c:v hevc_amf -usage transcoding -quality quality -b:v 5M"
set "video_settings[10]=-c:v h264_nvenc -video_size 1920x1080 -framerate 30 -cq 18 -preset medium -rc-lookahead 20"
set "video_settings[11]=-c:v hevc_nvenc -video_size 1920x1080 -framerate 30 -preset medium -cq 22 -g 30 -refs 4 -profile:v main10 -rc-lookahead 16"
set "video_settings[12]=-c:v av1_nvenc -preset p7 -cq 18"

rem Настройки записи аудио
set "audio_settings[1]=-c:a aac -b:a 128k -ac 2 -ar 44100 "
set "audio_settings[2]=-an"

echo Выберите настройки для записи видео:
for /L %%i in (1,1,12) do (
    echo %%i: !video_settings[%%i]!
)

set /p "choice=Введите номер настройки видео (1-12): "

if not defined video_settings[%choice%] (
    echo Неверный выбор. Попробуйте еще раз.
    goto :EOF
)

set "selected_settings=!video_settings[%choice%]!"

:audio_settings_selection
echo Выберите настройки для записи аудио:
echo 1. Записывать звук
echo 2. Не записывать звук

set /p audio_choice="Введите номер выбранной настройки аудио (1-2): "
if "%audio_choice%"=="1" (
    set "selected_audio_settings=-f dshow -ac 2 -guess_layout_max 0 -rtbufsize 1024M -i audio="virtual-audio-capturer""
) else if "%audio_choice%"=="2" (
    set "selected_audio_settings="
)

rem Команда ffmpeg для записи с выбранными параметрами
ffmpeg -f gdigrab -framerate 30 -probesize 50M -r 30 -i desktop ^
  !selected_audio_settings! ^
  %selected_settings% ^
  -vf "format=yuv420p,eq=brightness=0.1:contrast=1.2:saturation=1.5,unsharp=3:3:1.0:3:3:0.0" ^
  -fps_mode cfr -async 1 -fflags +genpts -movflags +faststart ^
  "%date_folder%\output_%datetime%.mkv"

pause

:invalid_video_choice
echo Неверный выбор настроек видео. Попробуйте снова.
goto input_video

 

 

Запись видео с помощи ffmpeg,  кодек  h265 с аппаратным ускорением nVidea.

Более современный с большей степенью сжатия без потери качества

Есть возможность выбрать настройки: писать или не писать звук, а также степень ускорения видео

Скрытый текст

Код скрипта :

Скрытый текст

@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion

rem Проверка наличия ffmpeg
where ffmpeg >nul 2>nul || (
    echo FFmpeg не найден. Убедитесь, что он установлен и находится в PATH.
    exit /b 1
)

rem Получение текущей даты и времени
for /f "tokens=2 delims==" %%I in ('"wmic os get localdatetime /value"') do set datetime=%%I
set datetime=%datetime:~0,4%-%datetime:~4,2%-%datetime:~6,2%_%datetime:~8,2%-%datetime:~10,2%-%datetime:~12,2%

rem Путь сохранения видео
set "base_path=D:\video\fraps"
set "date_folder=%base_path%\%datetime:~0,10%"
if not exist "%date_folder%" (
    mkdir "%date_folder%" || (
        echo Не удалось создать папку "%date_folder%".
        exit /b 1
    )
)

rem Выбор записи со звуком или без
echo 1. Записывать звук
echo 2. Не записывать звук
set /p "audio_choice=Введите номер выбранной настройки звука (1-2): "
if "%audio_choice%"=="1" (
    set "audio_params=-f dshow -rtbufsize 100M -i audio="virtual-audio-capturer" -c:a aac -b:a 192k -ac 2 -ar 44100"
) else if "%audio_choice%"=="2" (
    set "audio_params=-an"
) else (
    echo Неверный выбор. Выход.
    exit /b 1
)

rem Выбор уровня ускорения видео
echo 1. Ускорение в 2 раза
echo 2. Ускорение в 3 раза
echo 3. Ускорение в 4 раза
echo 4. Без ускорения
set /p "speed_choice=Введите номер уровня ускорения (1-4): "
if "%speed_choice%"=="1" (
    set "speed_params=0.5*PTS"
) else if "%speed_choice%"=="2" (
    set "speed_params=0.3333*PTS"
) else if "%speed_choice%"=="3" (
    set "speed_params=0.25*PTS"
) else if "%speed_choice%"=="4" (
    set "speed_params=1*PTS"    
) else (
    echo Неверный выбор. Выход.
    exit /b 1
)

REM Захват экрана и запись видео с использованием H.265 NVENC с переменным битрейтом
ffmpeg -f gdigrab -framerate 30 -probesize 50M -video_size 1920x1080 -r 30 -i desktop ^
%audio_params% ^
-c:v hevc_nvenc -preset slow -cq 22 -profile:v main10 ^
-vf "setpts=%speed_params%,scale=3840x2160,unsharp=luma_msize_x=3:luma_msize_y=3:luma_amount=1.1,eq=brightness=0.08:contrast=1.1" -pix_fmt yuv420p -r 30 -g 30 -bf 2 -refs 4 -me_range 16 -subq 8 -trellis 2 -rc-lookahead 16 -color_range 2 ^
-fps_mode cfr -async 1 -fflags +genpts -movflags +faststart ^
-f mp4 "%date_folder%\fraps_%datetime%.mp4"
pause
 

 

еще один вариант

Скрытый текст
@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion

rem Проверка наличия ffmpeg
where ffmpeg >nul 2>nul || (
    echo FFmpeg не найден. Убедитесь, что он установлен и находится в PATH.
    exit /b 1
)

rem Получение текущей даты и времени
for /f "tokens=2 delims==" %%I in ('"wmic os get localdatetime /value"') do set datetime=%%I
set datetime=%datetime:~0,4%-%datetime:~4,2%-%datetime:~6,2%_%datetime:~8,2%-%datetime:~10,2%-%datetime:~12,2%

rem Путь сохранения видео
set "base_path=D:\video\fraps"
set "date_folder=%base_path%\%datetime:~0,10%"
if not exist "%date_folder%" (
    mkdir "%date_folder%" || (
        echo Не удалось создать папку "%date_folder%".
        exit /b 1
    )
)

rem Выбор записи со звуком или без
echo 1. Записывать звук
echo 2. Не записывать звук
set /p "audio_choice=Введите номер выбранной настройки звука (1-2): "
if "%audio_choice%"=="1" (
    set "audio_params=-f dshow -rtbufsize 100M -i audio="virtual-audio-capturer" -c:a aac -b:a 192k -ac 2 -ar 44100"
) else if "%audio_choice%"=="2" (
    set "audio_params=-an"
) else (
    echo Неверный выбор. Выход.
    exit /b 1
)

rem Выбор уровня ускорения видео
echo 1. Ускорение в 2 раза
echo 2. Ускорение в 3 раза
echo 3. Ускорение в 4 раза
echo 4. Без ускорения
set /p "speed_choice=Введите номер уровня ускорения (1-4): "
if "%speed_choice%"=="1" (
    set "speed_params=0.5*PTS"
) else if "%speed_choice%"=="2" (
    set "speed_params=0.3333*PTS"
) else if "%speed_choice%"=="3" (
    set "speed_params=0.25*PTS"
) else if "%speed_choice%"=="4" (
    set "speed_params=1*PTS"	
) else (
    echo Неверный выбор. Выход.
    exit /b 1
)

REM Захват экрана и запись видео с использованием H.265 NVENC с переменным битрейтом
ffmpeg -f gdigrab -framerate 30 -probesize 50M -video_size 1920x1080 -r 30 -i desktop ^
%audio_params% ^
-c:v hevc_nvenc -preset slow -cq 18 -profile:v main10 ^
-vf "setpts=%speed_params%,scale=iw*2:ih*2,scale=iw/2:ih/2,unsharp=5:5:1.0,eq=saturation=1.3,hqdn3d,curves=r='0/0 0.5/0.5 1/1':g='0/0 0.5/0.5 1/1':b='0/0 0.5/0.6 1/1'" -pix_fmt yuv420p -r 30 -g 30 -bf 2 -refs 4 -me_range 16 -subq 8 -trellis 2 -rc-lookahead 16 -color_range 2 ^
-fps_mode cfr -async 1 -fflags +genpts -movflags +faststart ^
-f mp4 "%date_folder%\fraps_%datetime%.mp4"
pause

 

Обрезка видео

Скрытый текст

1.Нужно перетащить видео на скрипт

2.Указать с какой секунды обрезать

3.Продолжительность обрезки в секундах

Допустим видео 60с, нам нужно обрезать первые 5с и последние 5с. Первый параметр указываем 5, второй 50.

Обрезка происходит без перекодирования с сохранением исходного качества.

Скрытый текст

@echo off
setlocal

REM Установка кодировки UTF-8
chcp 65001 >nul

REM Проверка наличия ffmpeg
where ffmpeg >nul 2>nul
if %errorlevel% neq 0 (
    echo "Ошибка: ffmpeg не найден."
    exit /b
)

REM Проверка наличия входного файла
if "%~1"=="" (
    echo "Ошибка: Пожалуйста, перетащите видеофайл на скрипт."
    pause
    exit /b
)

REM Получение имени входного файла без пути и расширения
for %%I in ("%~1") do (
    set "input_name=%%~nI"
    set "input_ext=%%~xI"
)

REM Ввод пользователем начального времени и длительности
set /p start_time="Введите начальное время обрезки (в формате ЧЧ:ММ:СС.ММ): "
set /p duration="Введите длительность обрезки (в секундах): "

REM Формирование имени выходного файла
set output_name=%input_name%_cut

REM Обрезка видео с заданными параметрами
ffmpeg -ss %start_time% -i "%~1" -t %duration% -c:v copy -c:a copy -avoid_negative_ts 1 "%output_name%%input_ext%"

pause
exit /b

 

Склеивание нескольких видео

Скрытый текст

1.Создаем папку, допустим с именем fraps

2.Кидаем туда видео которые хотим склеить

3.Создаем простой текстовый файл, в который прописываем пути и имя файлов c расширением, которые будем склеивать. Не забываем кавычки как в примере. Очередность склейки файлов видео будет такой, какую вы указали в текстовом файле.

Пример текстового файла:

file 'D:\video\fraps\output_10_06_2024_20-10-51.mkv'
file 'D:\video\fraps\output_10_06_2024_20-10-51_cut.mkv'
file 'D:\video\fraps\output_10_06_2024_20-32-09.mkv'

4.Перетаскиваем созданный текстовый файл на скрипт.

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

Текст скрипта для склейки:

Скрытый текст

@echo off
setlocal

REM Установка кодировки UTF-8
chcp 65001 >nul

REM Проверка наличия ffmpeg
where ffmpeg >nul 2>nul
if %errorlevel% neq 0 (
    echo "Ошибка: ffmpeg не найден."
    exit /b
)

REM Проверка наличия файла со списком видеофайлов
if "%~1"=="" (
    echo "Ошибка: Пожалуйста, перетащите файл со списком видеофайлов на скрипт."
    pause
    exit /b
)

REM Установка имени выходного файла
set /p output_name="Введите имя выходного файла (без расширения): "
set output_name=%output_name%.mkv

REM Выполнение склейки видео
ffmpeg -f concat -safe 0 -i "%~1" -c copy "%output_name%"

pause
exit /b

 

 

Изменено пользователем zuz
Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Капустень сказал:

почему то в начале упущена суть, нафига это? 

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

Ссылка на комментарий
Поделиться на другие сайты

В л2 мы имеем не самый мощный графоний, по сути - ники и чатик бы были четкие, а остальное уж точно будет в норме.

24 минуты назад, zuz сказал:

Залить в ютубчик, и там не потерять в качестве

Так ютуб все равно пережимает видео, он не хранит оригиналы. Там либо vp09, либо av1. Самый простой метод настроить в записи видео изначально большее разрешение, тогда мы получим более-менее нормальную картинку. А можно и не записывать в большем разрешении, а вообще рендерить.

===1080p ====> 2160p =====> 2160p

изначальное   рендерим  заливаем на ютуб.

Ну и битрейт, мы так же можем сделать чуть больший битрейт, чем 50к битрейта для 2к разрешения - но для л2 это уже не такой важный фактор.

Выложи сравнения, во сколько раз сжимает, какое качество картинки получаем и сколько по времени занимает перепаковка.

 

 

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, StеrWоzа сказал:

В л2 мы имеем не самый мощный графоний, по сути - ники и чатик бы были четкие, а остальное уж точно будет в норме.

Так ютуб все равно пережимает видео, он не хранит оригиналы. Там либо vp09, либо av1. Самый простой метод настроить в записи видео изначально большее разрешение, тогда мы получим более-менее нормальную картинку. А можно и не записывать в большем разрешении, а вообще рендерить.

===1080p ====> 2160p =====> 2160p

изначальное   рендерим  заливаем на ютуб.

Ну и битрейт, мы так же можем сделать чуть больший битрейт, чем 50к битрейта для 2к разрешения - но для л2 это уже не такой важный фактор.

Выложи сравнения, во сколько раз сжимает, какое качество картинки получаем и сколько по времени занимает перепаковка.

 

 

В общем смотри идею) Для создания "кина" это будет явно сложно и не нужно, для создания фрапса гвг-шки думаю будет норм. Пишем гвг , обрезаем не нужные края видео, склеиваем превьюшку с видео + музычка, получаем готовый фрапс. Все это делается ffmpeg используя скрипты максимально быстро. Далее конвертируем его в 2к тем же ffmpeg, ютуб его хорошо кушает и не портит качество. То что я выложил, это только скрипт записи видео. Настройками фильтров ffmpeg нужно довести запись до состояния, когда тебе в принципе не нужен будет рендер записываемого видео.

Вот есть еще такой вариант скрипта записи. Качество видео можно регулировать одним параметром -qp 18 (чем выше значение, тем ниже качество. 18-баланс)

Пишет примерно с 20к битрейтом. Минута видео +-150мб. 

Попробуй, напиши ощущения. Как по мне, лучше obs

Скрытый текст

@echo off
set datetime=%date:/=-%_%time::=-%
set datetime=%datetime: =0%
set datetime=%datetime:.=_%
set datetime=%datetime:~0,19%

rem Путь сохранения видео
if not exist "D:\video\" mkdir "D:\video"

ffmpeg -f gdigrab -framerate 30 -probesize 50M -i desktop ^
  -vf "format=yuv420p,eq=saturation=1.2,unsharp=5:5:1,deshake" ^
  -c:v h264_nvenc -preset fast -qp 18 ^
  -g 60 -bf 2 -refs 5 -profile:v high ^
  -fps_mode cfr -fflags +genpts ^
  -r 30 "D:\video\output_%datetime%.mkv"

Скрипт конвертации в 2к, битрейт 20к. Нужно просто записанное видео перетащить на скрипт.

Скрытый текст

@echo off
setlocal

REM Проверка наличия ffmpeg
where ffmpeg >nul 2>nul
if %errorlevel% neq 0 (
    echo "Ошибка: ffmpeg не найден."
    exit /b
)

REM Проверка наличия входного файла
if "%~1"=="" (
    echo "Ошибка: Пожалуйста, перетащите видеофайл на скрипт."
    pause
    exit /b
)

REM Получение имени входного файла без пути и расширения
for %%I in ("%~1") do (
    set "input_name=%%~nI"
    set "input_ext=%%~xI"
)

REM Определение параметров для конвертации
set resolution=2560x1440
set bitrate=20M
set maxrate=30M
set bufsize=60M
set framerate=30
set audio_bitrate=320k

REM Формирование имени выходного файла
set output_name=%input_name%_2K

REM Конвертация видео с заданными параметрами
ffmpeg -i "%~1" -vf "scale=%resolution%" -c:v h264 -b:v %bitrate% -maxrate %maxrate% -bufsize %bufsize% -r %framerate% -c:a aac -b:a %audio_bitrate% "%output_name%.mp4"

pause
exit /b

 

Изменено пользователем zuz
Ссылка на комментарий
Поделиться на другие сайты

7 часов назад, zuz сказал:

Как по мне, лучше obs

Я как раз собирался сделать гайд по настройкам ОБС для л2, но как то время еще не нашел.  Там же не только в картинке дело (решается битрейтом) и не в размере файла (ПЗУ сейчас дешевое, я за 5к брал недавно на 1гб м2 ссд), а еще в куче фильтров, слоев, переключения сцен, микшера каналов звука итд. 

Ссылка на комментарий
Поделиться на другие сайты

13 часов назад, StеrWоzа сказал:

Я как раз собирался сделать гайд по настройкам ОБС для л2, но как то время еще не нашел.  Там же не только в картинке дело (решается битрейтом) и не в размере файла (ПЗУ сейчас дешевое, я за 5к брал недавно на 1гб м2 ссд), а еще в куче фильтров, слоев, переключения сцен, микшера каналов звука итд. 

Гайд по obs необходим, пиши. Там же можно писать и с помощью ffmpeg тоже). У меня проблема с инетом, заливать гектары в 4к, нет возможности. Да и рендерить это все сутками, то еще удовольствие.



Не много обновил информацию:

-добавил скрипт записи с ускорением, обрезку и склейку.

Ссылка на комментарий
Поделиться на другие сайты

22 минуты назад, zuz сказал:

Да и рендерить это все сутками, то еще удовольствие.

GPU рендер приятно удивляет, даже на старой, но не бесполезной 1060

Изменено пользователем StеrWоzа
Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Качество видео определяется параметром CQP, где 23 это дефолтное и 0 это лосслесс. Ограничивать качество видео битрейтом имеет смысл только для стримов.

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

На практике я использую nvenc av1 cqp 20, это оверкилл и хватило бы 23, но у меня канал инета позволяет заливать гигабайты.

Есть прога mkvtoolnix, которая позволяет резать и сшивать видео без пережатия, работает очень быстро.

На процессоре, если он минимум 8 ядер 16 потоков, еще можно записывать видео кодеком x264 preset ultrafast, но в реальном времени hevc и av1 они совершенно не тянут.

Изменено пользователем ixthUA
Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

Добавил скрипт для записи кодеком h265, использует аппаратное ускорение карты nVidea. Также в скрипте реализована возможность ускорения видео и возможность не писать или писать звук. Базовое разрешение экрана fulhd масштабируется в 4К, 30fps, добавлены фильтры резкости и яркости. Повысить качество можно параметром -cq, в скрипте стоит 22, это примерно баланс между качеством и размером файла. Чтобы поднять качество можно -cq сделать поменьше. set "base_path=D:\video\fraps" в этом параметре прописать путь куда будет сохраняться видео, в имени папок не использовать пробелы и кириллицу.

Изменено пользователем zuz
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...