Aprovechando la ocasión, aquí están los comandos que utilizo para capturar y/o hacer transcoding junto con una explicación más detallada. Considero que es bueno que quede como referencia futura para ti y todos los que tengan una XCapture-1.
El hardware que tengo en la laptop que uso para capturar es el siguiente:
- Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
- Nvidia GTX 1060 6 GiB RAM
El comando para capturar video y audio raw directo de la tarjeta a disco es el siguiente:
Código: Seleccionar todo
ffmpeg.exe -f dshow -rtbufsize 702000k -i video="CY3014 USB, Analog 01 Capture":audio="CY3014 USB, Analog 01 WaveIn" -acodec copy -vcodec copy C:\VIDEOCAPTURE\Test_Raw.AVI
Este comando captura en los siguientes formatos, que son los nativos de la tarjeta:
- Video: 1920x1080 YUY2 4:2:2
- Audio: PCM 48000 Hz 16 bits stereo
De acuerdo al panel de control de XCapture-1, mismo que puedes acceder desde el botón de "Configure Video" en OBS o a través de cualquier aplicación de captura que te permita ver las propiedades de la tarjeta:
- XCapture_Control_Panel.png (48.98 KiB) Visto 35942 veces
Con el comando arriba mencionado, el CPU se mantiene alrededor del 6% con picos de hasta 11% mientras que el GPU se mantiene en 0% durante la captura. El archivo resultante mide más o menos unos 14 GiB por minuto (aproximadamente 2 Gpbs de bitrate). En mi caso esto no presenta problemas de corrupción de audio.
Después de capturar, puedo hacer transcoding al formato final para poder mostrarte el resultado. Hice un transcoding a h264 Lossless con un bitrate de aproximadamente 280 Mbps, utilizando el siguiente comando:
Código: Seleccionar todo
ffmpeg.exe -hwaccel cuvid -hwaccel_output_format cuvid -i C:\VIDEOCAPTURE\Test_Raw.AVI -acodec copy -c:v h264_nvenc -preset lossless -pix_fmt yuv444p c:\VIDEOCAPTURE\Test_h264.AVI
Nota: este comando requiere una tarjeta con capacidad de utilizar NVENC para codificar por hardware, pero puedes sustituir los parámetros para usar cualquier codec de software de tu preferencia, ya sea lossy o lossless.
El video resultante lo puedes descargar de este link, para tu referencia:
https://drive.google.com/file/d/1VvOyg2 ... p=sharing
El video capturado es de un Neo-Geo con Last Resort, usando OSSC como upscaler con scanlines al 100%
Nota: este video mide más de 700 MiB, por lo cual sólo estará en línea temporalmente. Adicionalmente, asegúrate de descargarlo y no verlo en tu navegador, para evitar el transcoding de Google.
La compresión lossless se puede mejorar todavía un 15% adicional usando los parámetros
-acodec flac y -c:v hevc_nvenc, pero me he encontrado que no todos los reproductores lo pueden decodificar.
Por último, es posible capturar y comprimir directo a Lossless usando NVENC sin tener que pasar por los dos pasos anteriores:
Código: Seleccionar todo
ffmpeg.exe -hwaccel cuvid -hwaccel_output_format cuvid -f dshow -rtbufsize 702000k -video_size 1920x1080 -framerate 60.0002 -pixel_format bgr24 -i video="CY3014 USB, Analog 01 Capture":audio="CY3014 USB, Analog 01 WaveIn" -acodec flac -vcodec copy -c:v hevc_nvenc -preset lossless -pix_fmt yuv444p C:\VIDEOCAPTURE\Test_Lossless.AVI
El CPU en este caso se mantiene alrededor del 2% y el GPU en un 50%. Las escrituras a disco oscilan entre 25 y 35 MiB/s.
Con estos resultados, me parece que está clara la ventaja de tener un buen GPU, aunque no es estrictamente necesario para obtener la máxima calidad de tu XCapture-1.
Por lo que entiendo de tus posts anteriores, tu target es Youtube, pero por desgracia desconozco los parámetros precisos para el encoding preferido de esa plataforma y no puedo ayudarte con eso. Quizá en un futuro nos puedas compartir esa información y los parámetros óptimos en tu experiencia, para que quede documentado aquí también.
Espero te sea útil esta guía.
Saludos.