FFmpeg - подробный гайд! Ответ на вопрос подписчика об FFmpeg. Запись экрана через FFmpeg+сравнение

ФОРМУЛА FFMPEG В КОНЦЕ ОПИСАНИЯ! Это видео - подробный разбор многих особенностей FFmpeg, сранение преимуществ и недостатков у FFmpeg, OBS и DaVinci Resolve. Я рассказываю как записывать экран при момощи FFmpeg через PowerShell, как записывать раздельно звуковые дорожки из разных источников (например, звук из игры и звук из гарнитуры - раздельными аудиодорожками). Как использовать раздельно записанные аудиодорожки при редактировании в DaVinci Resolve. Ещё я рассказываю как правильно выставить настройки энкодирования, как скачать FFmpeg с официального сайта, как составить формулу FFmpeg в txt-блокнотике. Так же я рассказываю как апскейлить видео с FullHD до 4k. Как выбирать, изучать настройки и применять видео- и аудиофильтры FFmpeg. Как выбирать нужный энкодер в FFmpeg для записи видео. А ещё я отвечаю на вопрос подписчика, который просит меня рассказать как наиболее качественно записывать игровые летсплеи. #FFMPEG #ScreenRecording #PowerShell #Upscale #4k #OBS #Screencapture #DaVinciResolve www.gyan.dev




Мои формулы FFMPEG: start-process pwsh -ArgumentList '-noexit' Get-Process -name 'pwsh' | foreach { $_.PriorityClass = "high" } ffmpeg -hide_banner -loglevel +repeat+level+info ` -f gdigrab -hwaccel_device cuda -hwaccel cuda -hwaccel_output_format cuda -video_size 1920:1080 -framerate 60 -draw_mouse 1 -show_region 0 -offset_x 0 -offset_y 0 -indexmem 64M -rtbufsize 64M -probesize 64M -analyzeduration 64M -thread_queue_size 2048 -avoid_negative_ts "make_zero" ` -i desktop ` -f dshow -audio_buffer_size 100 -rtbufsize 64M -thread_queue_size 256 ` -i 'audio=@device_sw_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\{8E146464-DB61-4309-AFA1-3578E927E935}' ` -f dshow -audio_buffer_size 100 -rtbufsize 64M -thread_queue_size 256 ` -i 'audio=@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{472DBE92-04B3-48AB-A937-ED4CD6A85625}' ` -map '0:v:0' -c:v:0 h264_nvenc -gpu 0 -vsync 1 -r 60 -video_track_timescale 60 -video_size copy -delay 0 -rc constqp -init_qpP 0 -init_qpB 0 -init_qpI 0 -rc-lookahead 0 -zerolatency 1 -bufsize:v 128M -pix_fmt yuv444p -profile:v high444p -preset p1 -tune ull -level 6.2 -coder vlc -weighted_pred 0 ` -noautoscale -avioflags direct -fflags nobuffer+genpts+igndts+autobsf+flush_packets+shortest -flush_packets 1 -max_delay 100000 ` -sws_flags spline+accurate_rnd+full_chroma_int+full_chroma_inp ` -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range "tv" ` -map '1:a:0' -filter:a:0 adelay="250|250" -c:a:0 pcm_s16le -ar:a:0 48000 -ac:a:0 2 ` -map '2:a:0' -filter:a:1 adelay="250|250" -c:a:1 pcm_s16le -ar:a:1 44100 -ac:a:1 2 ` -metadata title="FFmpeg_Screen_Recording" -metadata comment="$(get-date -f yyyy-MM-dd_HH-mm-ss)_any_comment" ` -f mov -write_prft wallclock ` "FFmpeg_Screen_Recording_$(get-date -f yyyy-MM-dd_HH-mm-ss).mov" Get-Process -name 'ffmpeg' | foreach { $_.PriorityClass = "high" } start-process pwsh -ArgumentList '-noexit' Get-Process -name 'pwsh' | foreach { $_.PriorityClass = "high" } ffmpeg -hide_banner -loglevel +repeat+level+info ` -i "FFmpeg_Screen_Recording_2022-02-16_03-52-29.mov" ` -map 0:v:0 -vf scale="w=3840":"h=2160":"in_color_matrix=bt709":"out_color_matrix=bt709":"in_range=limited:out_range=limited":"sws_flags=neighbor+accurate_rnd+full_chroma_int+full_chroma_inp":"srcw=1920":"srch=1080":"dstw=3840":"dsth=2160":"src_format=yuv444p":"dst_format=nv12":"sws_dither=x_dither" ` -noautoscale -c:v:0 h264_nvenc -gpu 0 -vsync 1 -framerate copy -video_size copy -rc constqp -init_qpP 0 -init_qpB 0 -init_qpI 0 -rc-lookahead 0 -bufsize:v 512M -pix_fmt nv12 -profile:v high -preset p7 -tune hq -level 6.2 -coder vlc -weighted_pred 0 ` -sws_flags neighbor+accurate_rnd+full_chroma_int+full_chroma_inp ` -c:a pcm_s16le -ar:a 48000 -ac:a 2 -filter_complex "[0:1][0:2] amerge=inputs=2" ` -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range "tv" ` -metadata title="FFmpeg_Screen_Recording" -metadata comment="$(get-date -f yyyy-MM-dd_HH-mm-ss)_any_comment" ` -f mov -write_prft wallclock ` "FFmpeg_filter_$(get-date -f yyyy-MM-dd_HH-mm-ss).mov" Get-Process -name 'ffmpeg' | foreach { $_.PriorityClass = "high" } -ss 00:00:02 -t 00:00:03 `

Смотрите также