FFMPEG ile video düşük kalitede kayıt ediliyor

Ali998

Centipat
Katılım
27 Ağustos 2020
Mesajlar
2.452
Çözümler
23
Daha fazla  
Cinsiyet
Erkek
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
Sorunum bu, tek bir monitörüm var. Girdiğim komut şu:
ffmpeg -f x11grab -s 1920x1080 -i :0.0 out.mkv
İlk 1 saniye gayet temiz bir görüntü var ama sonra hemen kirleniyor.
FFMPEG çıktısı şöyle:
Kod:
ffmpeg version 4.3.2 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 10.2.0 (Gentoo 10.2.0-r5 p6)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/share/doc/ffmpeg-4.3.2/html --mandir=/usr/
ux-gnu-nm --ranlib=x86_64-pc-linux-gnu-ranlib --pkg-config=x86_64-pc-linux-gnu-pkg-config --optflags='-march=native -O3 -pipe -Wl
libcelt --disable-indev=v4l2 --disable-outdev=v4l2 --disable-indev=oss --disable-indev=jack --disable-indev=sndio --disable-outde
gmp --enable-gpl --disable-hardcoded-tables --enable-iconv --disable-libtls --disable-libxml2 --disable-lzma --enable-network --d
vdpau --disable-vulkan --enable-xlib --enable-libxcb --enable-libxcb-shm --enable-libxcb-xfixes --enable-zlib --disable-libcdio -
-disable-libdrm --disable-libjack --disable-libopencore-amrwb --disable-libopencore-amrnb --disable-libcodec2 --enable-libdav1d -
 --disable-libmodplug --disable-libopus --disable-libilbc --disable-librtmp --disable-libssh --disable-libspeex --disable-libsrt
isable-chromaprint --disable-cuda-llvm --disable-libflite --disable-frei0r --disable-libfribidi --disable-fontconfig --disable-la
able-libzmq --disable-libzimg --disable-libsoxr --enable-pthreads --disable-libvo-amrwbenc --disable-libmp3lame --disable-libkvaz
e-libwebp --disable-libx264 --disable-libx265 --disable-libxvid --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-neo
-vsx --disable-power8 --disable-amd3dnow --disable-amd3dnowext --disable-aesni --disable-avx --disable-avx2 --disable-fma3 --disa
-enable-manpages
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
[x11grab @ 0x55b6ccaa3240] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, x11grab, from ':0.0':
  Duration: N/A, start: 1620251712.391879, bitrate: 1988667 kb/s
    Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 1988667 kb/s, 29.97 fps, 1000k tbr, 1000k tbn, 1000k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg4 (native))
Press [q] to stop, [?] for help
Output #0, matroska, to 'out.mkv':
  Metadata:
    encoder         : Lavf58.45.100
    Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1920x1080, q=2-31, 200 kb/s, 29.97 fps, 1k tbn, 29.97 tbc
    Metadata:
      encoder         : Lavc58.91.100 mpeg4
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
frame=  345 fps= 30 q=31.0 Lsize=    1913kB time=00:00:11.47 bitrate=1365.5kbits/s speed=   1x
video:1909kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.209693%
Exiting normally, received signal 2.
Yeniden compile ettim driverlar inmiş durumda ama sorun çözülmedi.
 
Kayıt için verdiğin komut nedir? FHD ekranı düşük kalitede kayıt ediyor gibisin.
Ben de programa yeniyim, şu videodan öğrendim herşeyi:
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
4:28'de başlıyor açıklamaya.
Manuel sayfasına bakıyorum da şuanlık gözüme bir şey çarpmadı.
 
ffmpeg birçok flag(argüman) alıyor. ffmpeg --help ile çıktı alabilirsin. Şurada örnekler verilmiş. Alsa veya Pulseaudio ile kayıt yapmak istersen herhangi birini deneyebilirsin. Tüm ekran için koordinatları silip çözünürlüğe 1920x1080 yazmayı, framerate için de 60'ı ayarlamayı deneyebilirsin.

Ayarların çoğu yenilenmiş sanırım. Birkaç argümanla kayıt denedim ama başarısız oldu. Sadece şu çalıştı:
Kod:
ffmpeg -f x11grab  -s 1920x1080 -i :0.0 -r 60 -vcodec libx264  output.mkv
 
ffmpeg birçok flag(argüman) alıyor. ffmpeg --help ile çıktı alabilirsin. Şurada örnekler verilmiş. Alsa veya Pulseaudio ile kayıt yapmak istersen herhangi birini deneyebilirsin. Tüm ekran için koordinatları silip çözünürlüğe 1920x1080 yazmayı, framerate için de 60'ı ayarlamayı deneyebilirsin.

Ayarların çoğu yenilenmiş sanırım. Birkaç argümanla kayıt denedim ama başarısız oldu. Sadece şu çalıştı:
Kod:
ffmpeg -f x11grab  -s 1920x1080 -i :0.0 -r 60 -vcodec libx264  output.mkv
Açıkçası beceremedim, ekleyebildiğim kadar ayar ekledim de gene olmadı. Aynı sıkıntı.
Biraz daha deniyorum. Umarım olur.
 
Neden direkt ekran kayıt uygulamaları kullanmıyorsunuz ki? SimpleScreenRecorder var mesela, gayet basit ve yetenekli bence.
Compile etmesi uzun sürmesin diye. OBS kuracam 3-4 saat sürecek eminim. Ha bu arada videoda da diyor, bloat ve ALSA olayları biraz sıkıntılı benim için.
 
Son düzenleme:
Compile etmesi uzun sürmesin diye. OBS kuracağım 3-4 saat sürecek eminim. Ha bu arada videoda da diyor, bloat ve alsa olayları biraz sıkıntılı benim için.

O kadar süreceğini sanmam, flatpak olarak kurabilirseniz hızlı bir şekilde işinizi halletmek istiyorsanız.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
Sorunum bu, tek bir monitörüm var. Girdiğim komut şu:
ffmpeg -f x11grab -s 1920x1080 -i :0.0 out.mkv
İlk 1 saniye gayet temiz bir görüntü var ama sonra hemen kirleniyor.
FFMPEG çıktısı şöyle:
Kod:
ffmpeg version 4.3.2 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 10.2.0 (Gentoo 10.2.0-r5 p6)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/share/doc/ffmpeg-4.3.2/html --mandir=/usr/
ux-gnu-nm --ranlib=x86_64-pc-linux-gnu-ranlib --pkg-config=x86_64-pc-linux-gnu-pkg-config --optflags='-march=native -O3 -pipe -Wl
libcelt --disable-indev=v4l2 --disable-outdev=v4l2 --disable-indev=oss --disable-indev=jack --disable-indev=sndio --disable-outde
gmp --enable-gpl --disable-hardcoded-tables --enable-iconv --disable-libtls --disable-libxml2 --disable-lzma --enable-network --d
vdpau --disable-vulkan --enable-xlib --enable-libxcb --enable-libxcb-shm --enable-libxcb-xfixes --enable-zlib --disable-libcdio -
-disable-libdrm --disable-libjack --disable-libopencore-amrwb --disable-libopencore-amrnb --disable-libcodec2 --enable-libdav1d -
 --disable-libmodplug --disable-libopus --disable-libilbc --disable-librtmp --disable-libssh --disable-libspeex --disable-libsrt
isable-chromaprint --disable-cuda-llvm --disable-libflite --disable-frei0r --disable-libfribidi --disable-fontconfig --disable-la
able-libzmq --disable-libzimg --disable-libsoxr --enable-pthreads --disable-libvo-amrwbenc --disable-libmp3lame --disable-libkvaz
e-libwebp --disable-libx264 --disable-libx265 --disable-libxvid --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-neo
-vsx --disable-power8 --disable-amd3dnow --disable-amd3dnowext --disable-aesni --disable-avx --disable-avx2 --disable-fma3 --disa
-enable-manpages
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
[x11grab @ 0x55b6ccaa3240] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, x11grab, from ':0.0':
  Duration: N/A, start: 1620251712.391879, bitrate: 1988667 kb/s
    Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 1988667 kb/s, 29.97 fps, 1000k tbr, 1000k tbn, 1000k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg4 (native))
Press [q] to stop, [?] for help
Output #0, matroska, to 'out.mkv':
  Metadata:
    encoder         : Lavf58.45.100
    Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1920x1080, q=2-31, 200 kb/s, 29.97 fps, 1k tbn, 29.97 tbc
    Metadata:
      encoder         : Lavc58.91.100 mpeg4
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
frame=  345 fps= 30 q=31.0 Lsize=    1913kB time=00:00:11.47 bitrate=1365.5kbits/s speed=   1x
video:1909kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.209693%
Exiting normally, received signal 2.
Yeniden compile ettim driverlar inmiş durumda ama sorun çözülmedi.
Ben de biraz önce denedim. Aynı sorun bende de var.
Neden direkt ekran kayıt uygulamaları kullanmıyorsunuz ki? Simplescreenrecorder var mesela, gayet basit ve yetenekli bence.
O da ffmpeg kullanıyor, aynı sorun onda da olabilir.
 
Son düzenleme:

Yeni konular

Geri
Yukarı