Also, hier ist mein Code:
Code: Select all
if helpers.os_is_windows():
command = [
helpers.get_path(helpers.get_app_folder(), helpers.get_config("PATH_FFMPEG_WINDOWS")), "-y",
"-f", "dshow",
"-i", "video=screen-capture-recorder:audio=virtual-audio-capturer",
"-vf", f"crop={width}:{height}:0:0,format=yuv420p",
"-c:v", "libx264", # Use H.264 codec for video
"-preset", "ultrafast", # Use ultrafast preset for faster encoding (lower CPU usage)
"-crf", "23", # Constant Rate Factor for good quality (lower is better, 23 is default)
"-pix_fmt", "yuv420p", # Ensure compatibility with most players
"-c:a", "aac", # Use AAC codec for audio
"-b:a", "128k", # Set audio bitrate to ensure good quality
"-ar", "44100", # Set audio sample rate to avoid bass boosting or distortion
output,
]
elif helpers.os_is_linux():
command = [
helpers.get_path(helpers.get_app_folder(), helpers.get_config("PATH_FFMPEG_LINUX")), "-y",
"-f", "x11grab",
"-s", f"{width}x{height}",
"-i", ":0.0",
"-f", "pulse",
"-i", "alsa_output.pci-0000_00_1b.0.analog-stereo.monitor",
"-ac", "2",
"-c:v", "libx264",
"-preset", "ultrafast",
"-crf", "23",
"-pix_fmt", "yuv420p",
"-c:a", "aac",
"-b:a", "128k",
"-ar", "44100",
output,
]
else:
logger.error("Unsupported OS")
return False
Der Befehl für Windows führt zu diesem Befehl:
Code: Select all
ffmpeg -y \
-f dshow \
-i "video=screen-capture-recorder:audio=virtual-audio-capturer" \
-vf "crop={VIDEO_WIDTH}:{VIDEO_HEIGHT}:0:0,format=yuv420p" \
-c:v libx264 \
-preset ultrafast \
-crf 23 \
-pix_fmt yuv420p \
-c:a aac \
-b:a 128k \
-ar 44100 \
"{OUTPUT_FILE_PATH}"
Ich vermute, dass FFmpeg nicht mehr über genügend Speicher verfügt, es beendet die Aufnahme von Frames, weil es nicht alle speichern kann, und ich habe ein Update für die App veröffentlicht, das es dem Benutzer ermöglicht, die Aufnahme mit 60 fps auszuführen, früher waren es etwa 24 fps, weshalb ich zu diesem Schluss gekommen bin, denn danach Update, dieser Fehler tritt häufiger auf.
Könnte mir jemand eine Anleitung geben? Ich bin hier ratlos und würde mich über Hilfe freuen. Vielen Dank an alle, die sich die Zeit nehmen, mir zu helfen!
Bearbeiten: Ich wollte diese Änderung nur vornehmen, mir ist klar, dass sie diesen Fehler ausgibt:
Code: Select all
real-time buffer [screen-capture-recorder] [video input] too full or near too full (545% of size: 3041280 [rtbufsize parameter])! frame dropped!
Mobile version