Mi equipo es un Ryzen 7-1700 con 16 GB de RAM, un montón de discos duros con un SSD para el sistema operativo: Windows 10 Professional. Mi tarjeta de video era/es una GT 730 2GB. Uso la versión donante 2.4 v11 de MCEB y tengo habilitada la codificación por hardware.
A principios de este año comencé a capturar algunos programas de televisión antiguos de media hora a través de mi Roku y una caja de captura. Uso OBS Studio versión 23.2 (la última) con configuraciones básicamente predeterminadas (1920 x 1080). Estiré la pantalla ya que los programas están en un formato antiguo. ¡El resultado final se ve genial en un HDTV! Después de que la caja captura el archivo, va a mi HTPC, donde MCEB lo recoge y procesa usando el códec HEVC MP4. Creé una configuración especial para estos programas ya que no tienen anuncios: no hay necesidad de Comskip.
Con la configuración de la GT 730, el archivo sin procesar era de unos 470 MB. MCEB lo reducía a unos 220 MB. Necesito que sean lo más pequeños posible ya que hay como 40 episodios por temporada y planeo archivarlos todos.
Después de leer mucho, decidí comprar una tarjeta gráfica mejor. Conseguí una buena oferta en la GTX 1660 ti y la instalé. Actualicé los controladores y usé el códec H265 NVENC en OBS. Después de los resultados que muestro abajo, también usé el códec H264 (¿presumiblemente el mismo que usaba la 730?) y obtuve resultados similares.
Los tiempos de procesamiento en MCEB bajaron drásticamente: de 40 minutos a 9 minutos, y esto le quitó carga al CPU, que antes al procesar 2 transmisiones llegaba al 100%. Me decepcionó ver que los archivos finales eran casi tan grandes como el archivo original capturado (más de 400 MB).
Experimenté con varias configuraciones como el bitrate pero no pude obtener el mismo nivel de compresión. Terminé devolviendo la 1660 y reinstalé la 730. Mi primera conversión y todo volvió a la normalidad en tiempos de procesamiento y tamaños de archivo. Como es una máquina dedicada, puedo ejecutar las conversiones en horarios no laborables, pero esperaba mejores resultados, especialmente ya que Nvidia y OBS trabajaron juntos en la última versión de OBS. Si estaba haciendo algo mal, no estoy seguro de qué era.
Me pregunto si alguien más ha visto algo similar usando una tarjeta Nvidia. Me pregunto si una tarjeta más básica como una 1050 puede funcionar mejor.
He encontrado que los tamaños de archivo en NVENC son subóptimos. Te sugiero que aumentes la compresión para reducir los archivos. Volver a una 105o no hará los archivos más pequeños, solo ralentizará la conversión.
Gracias. ¿Cómo aumento la compresión? Intenté reducir el bitrate de 2500 a 2000 y 1500, y el primero no hizo mucha diferencia en el tamaño mientras que el segundo resultó en un video de baja calidad.
Te sugiero que mires el perfil. Busca esta línea:
ffmpeg-video=-ss 9 -c:v hevc_nvenc -cq 26 -rc vbr -map 0:v
La parte CQ se refiere a “Calidad Constante”: los números más altos significan menor calidad y, claro, la escala de H265 es distinta a la de H264; un CQ de 23 en H265 equivale aproximadamente a una calidad de 20 en H264.
Usar lo anterior reducirá el tamaño de los archivos en unos 60 % frente al archivo .TS sin comprimir. La escala es logarítmica, así que pequeños ajustes pueden tener un gran impacto.
¡Buena suerte! Will.
Gracias por tu tiempo y consejos. Encontré la configuración del perfil, y esto es lo que hay en esa línea:
ffmpeg-video=-ss 0 -vf yadif=0:-1:1,hqdn3d -vcodec libx265 -preset medium -crf 26 -map 0:v -sn
Supongo que es diferente ya que la GTX/NVENC se fue.
¿Tienes algún consejo para una tarjeta de video mejor capaz de H265 para ejecutar esta operación? Prefiero no gastar más de $200 nuevamente si una tarjeta menor puede dar resultados decentes y aliviar la carga del CPU. Sé que la 1050 es una tarjeta popular, por eso la mencioné.
Una vez que tenga una tarjeta capaz de HEVC, si puedo encontrar la configuración similar de ffmpeg en OBS, también podría aliviar la carga de MCEB.
Hola. El perfil que citaste está usando x265, que es todo por software. Si cambias libx265 a hevc_nvenc, empezará a usar tu tarjeta de video para la codificación. La sintaxis de ffmpeg es un poco arcaica; publico abajo el perfil que uso:
[MKV HVEC Beta Profile Constant Quality]
Description=ADVERTENCIA: Codificación de calidad constante (26) de Handbrake con HVEC de Nvidia.
order=ffmpeg, handbrake
AllowH264CopyRemuxing=true
FixedResolution=true
AutoDeinterlace=true
ffmpeg-UsingHardwareEncoding=True
ffmpeg-general=-threads 0 -hwaccel auto
ffmpeg-video=-ss 9 -c:v hevc_nvenc -cq 26 -rc vbr -map 0:v
ffmpeg-audio=-acodec ac3 -ab 192k -map 0:a
ffmpeg-audioac3=-acodec ac3 -ab 384k -map 0:a
ffmpeg-ext=.mkv
ffmpeg-audiodelay=skip
handbrake-UsingHardwareEncoding=true
handbrake-general=--decomb --denoise="weak" --loose-anamorphic --verbose=2 -T -O
handbrake-video=--start-at duration:0 --encoder nvenc_h265 --encoder-preset slow --quality 23 --vfr
handbrake-audio=-E ffac3 -R auto -B 192 -D 0 -a 1,2,3,4,5
handbrake-audioac3=-E ffac3 -R auto -B 384 -D 0 -a 1,2,3,4,5
handbrake-ext=.mkv
handbrake-audiodelay=skip
PreConversionCommercialRemover=true
Tu tarjeta es más que suficiente; es una versión actualizada de la línea GTX 10xx. Compré una RTX 2060 para mi caja de Plex / MCEBuddy, pero tu 16xx aún no estaba disponible cuando compré la mía. ¡Buena suerte! Will.
Otra cosa: si estás usando una versión reciente de Windows 10, puedes mirar el administrador de tareas para ver dónde se está realizando el trabajo mientras se convierte el archivo. Si todo funciona correctamente, deberías ver que la tarjeta de video se dispara al 99% cuando la conversión está en marcha. Es bastante interesante. ¡Gracias! Will.
Gracias por el post. He devuelto y eliminado la GTX 1660 ti, así que estoy de vuelta con la GT 730, que NVIDIA dice que no admite H265 en su matriz.
EDIT
Utilizo tanto HW monitor como programas de monitoreo de GPU para ver qué están haciendo la CPU y la GPU cuando se ejecuta MCEB.
Intentaré encontrar una tarjeta de la serie 10 económica que lo haga. Gracias de nuevo.
He estado contento con mi 2060: la 2050 también funcionará y es más barata…
Usando tu información, estuve probando en OBS Studio, ya que mi objetivo es obtener un tamaño de archivo manejable con la captura inicial y simplemente usar MCEB para los datos de emisión y moverlo a Plex. Realmente no estoy seguro de cómo funciona ffmpeg, pero sé cómo introducir el código. Con el proceso que te muestro a continuación, intenté añadir un par de archivos dll a OBS basándome en un post que vi para poder usar libx265, pero el grabador se bloqueó en ambos intentos. He leído que OBS no admite x265.
Usando el texto de ffmpeg del perfil de MCEB sin la última línea donde se ocupa de los comerciales y utilizando el códec H264_Nvenc, noté una gran reducción en archivos de prueba de 5 minutos. Los que había capturado usando H265 Nvenc eran de unos 190 MB, mientras que el que hice hoy fue de 103 MB (esta proporción parece ser aproximadamente la que estoy obteniendo con MCEB). Lo interesante fue que miraba la barra de datos de OBS y mostraba como un 14% de uso de CPU mientras capturaba. Lo reproducí en otra máquina y se veía bien.
Todavía tengo algunos de mis archivos de formato de media hora (unos 24:30 de duración), así que probaré con uno de esos y veré qué consigo. Si esto funciona de la misma manera, puedo esperar con comprar otra tarjeta de vídeo.
Gracias de nuevo por toda tu ayuda.
Bueno, de vuelta al tablero de dibujo. Mi archivo de 24 minutos con configuraciones personalizadas fue de 503 MB. Me di cuenta de que estaba mirando el archivo H265 más grande que había creado cuando hice el comentario anterior; otros usando H264 eran más pequeños. El mismo programa con la configuración anterior fue de alrededor de 487 MB, así que esto lo hizo más grande.
Seguiré probando diferentes configuraciones. Si MCEB puede hacer esto en la misma máquina usando ffmpeg, debe haber una manera de que OBS lo haga también.