sábado, 22 de junio de 2013

LP Encoder - Prueba de Concepto

Hace tiempo he tenido la práctica de generar scripts que automaticen mi trabajo, mis primeros Let's Play se beneficiaban por esto, era capaz de generar vídeos a una velocidad sorprendente, tanto que lograba colgar consistentemente dos vídeos al día todos los días, obviamente los vídeos que subía no tenían mucha calidad puesto que usaba una compresión muy fuerte para lidiar con el internet miserable que tenia en esa época, colgar 50mb era una espera eterna, con el paso del tiempo, evolución de la tecnología y un mejor servicio de internet abandoné la práctica de la automatización y empecé a editar los vídeos personalmente, hasta la fecha aún me doy asco por hacer semejante cosa y perder mi tiempo cuando puedo usar ¡SCIENCE!

Una fiel representación mía de aquellas ocasiones en las que esperaba que mi internet cargara el vídeo.
Con el paso del tiempo mis vídeos han subido de cálida visual y auditiva considerablemente pero mi tiempo ha ido disminuyendo con cada año que pasa, simplemente ya no puedo mantener el mismo ritmo, extraño realmente aquellas épocas en las cuales grabar era lo más tardado, ejecutaba un script y en unas horas todo estaba listo para subirse a internet. Por las razones anteriores desarrollé este software cuyo trabajo es automatizar la edición estándar que se tiene que hacer, de manera breve el proceso de este software es:
  1. Conseguir el audio del juego.
  2. ajustar la ganancia de volumen (en porcentaje) del juego.
  3. ajustar la ganancia de volumen (en porcentaje) de los comentarios.
  4. mezclar el audio.
  5. remplazar el audio del vídeo con el audio mezclado.
  6. recortar el vídeo para quitar las barras negras (opcional).
  7. aplicar filtros y transformar a full HD (opcional).
El software acepta aquellos formatos que ffmpeg y mencoder sean capaces de procesar, normalmente si pueden reproducirlos pueden procesarlos con esto. COMO ADVERTENCIAS PRELIMINARES: el archivo de los comentarios debe tener formato WAV, el postfijo "-commentary" en el nombre y la tasa de muestreo del audio de los comentarios (Hz) debe ser la misma que el audio del vídeo con el gameplay. Si la taza de muestro del vídeo de gameplay es 48000Hz el de los comentarios debe ser el mismo (¿Cómo se hace? Google es su amigo).

Para ejecutar este script es necesario por lo menos Python 2.5, para esta prueba se usó Python 2.7.3 y estas son las características del equipo en el se realizó la prueba:

Procesador:          AMD Athlon XP 2000+ 1.66GHz Cache 64 + 64 + 256
Memoria:              256 MB DDR-SDRAM 166.4MHz Un Canal
Tarjeta Madre:      SiS 741-964
Tarjeta de Vídeo:   Nvidia GeForce4 MX 4000 (NV18) AGP 8x 128MB DDR-SDRAM 64-bit
Disco Duro:           IDE ATA-133 Maxtor 6Y120L0 122 GB, 2MB
Sistema Operativo: Windows XP Profesional Service Pack 2 Build 2600

Esto fue planeado como una prueba de estrés para el software ademas de que mis computadoras son bastante sencillas, esta en particular tiene casi 9 años de servicio, no sean duros con ella, hace lo que puede con lo que tiene. Les dejo por fin unas capturas de la prueba para que vean como se usa este software, más explicaciones después:

Se pueden apreciar los archivos y el comando usado para procesar el vídeo.
Este es el comando que se usó: LPencoder.py Starfox-POC.mpeg -75 100 675:449:22:13 std para los que no entendieron como se usaron los argumentos esta es una breve explicación:

  • El primer argumento es el vídeo a procesar.
  • el segundo argumento es la ganancia del volumen del audio del juego (en porcentaje valores negativos indican un decremento de volumen).
  • el tercer argumento es la ganancia del volumen del audio de los comentarios (en porcentaje).
  • el cuarto argumento es el retraso que debe tener el audio de los comentarios y es medido en segundos.
  • el quinto argumento es el recorte para eliminar las barras negras con medidas Ancho:Alto:X:Y o "no" para no realizar el recorte del vídeo.
  • el sexto argumento es la transformación a HD con las opciones std (Calidad estándar, procesamiento rápido para equipos no muy potentes), Lossles (Máxima calidad, procesamiento tardado para equipos robusto) y no (No transforma el vídeo en HD).
Para obtener el recorte del vídeo se puede usar el comando: ffmpeg -i video_de_entrada -ss HH:MM:SS -r 1 -t 1 imagen-%d.png y abrir la imagen resultante en un editor de imagenes el cual proporcionara las medidas adecuadas de recorte (esto es responsabilidad del usuario, sorry).

Especificare el software y hardware que se usó para grabar, las características del vídeo de entrada y el de salida.

Hardware de grabación: Capturadora Steren COM-445
Software de grabación:  GrabBee 1.0.7.6 y Audacity 2.0.3
Perfil GrabBee:              DVD-NTSC 

Vídeo de entrada
Duración:            00:16:52
Peso:                  661 MB
Códec:               MPEG-1/2 (mpgv)
Resolución:         720x480
FPS:                   59.940059
Códec de audio:     MPEG Audio Layer 1/2/3
Canales:                 Estereo
Taza de Muestreo: 48000 Hz
Bits por muestra:    384 kb/s

Audio de los comentarios
Duración:               00:16:50
Peso:                     92.5 MB
Códec:                  PCMS16LE (araw)
Taza de Muestreo: 48000 Hz
 Bits por muestra:  16

Vídeo de salida
Duración: 00:16:52 (Si el audio de los comentarios no se recortó puede aumentar la duración)
Peso:                            924 MB
Resolución                    1920x1080
FPS:                             29.970029
Formato decodificador: Planar 4:2:0 YUV
Códec de audio:           MPEG AAC Audio (mp4a)
Taza de Muestreo:        48000Hz

La prueba finalizó en 1 hora con  28 minutos, 41 segundos y 266  milésimas.

Yo estaba dormido cuando terminó pero el software indica cuanto tarda.
Al finalizar quedan tres archivos nuevos, un log, Starfox-POC-new.mpeg el cual es el vídeo con recorte (disminuye la resolución y el códec puede variar según la entrada si se hace el recorte, de otra manera el códec y resolución quedan iguales pero el audio formato de audio puede diferir) y Starfox-POC-HD.mp4 que es el archivo final que estábamos buscando.
Aquí se ilustra el resultado de una cruzada por el bien de la humanidad.
A continuación dejaré el vídeo de prueba de concepto que se generó con este software:

Antes de dejar el enlace de descarga para que lo prueben y se vuelvan locos debo de dar unas últimas advertencias: este software NO hace pre-edición de audio, si el comentario o el vídeo del juego tiene ruido, si el vídeo o audio debe ser cortado o mejorado con otros filtros debe hacerse de manera manual.
Sobre todo y más importante va esta advertencia, espero la lean con cuidado y a conciencia:

ESTE SOFTWARE SE ENTREGA COMO ESTA Y SIN MÁS INSTRUCCIONES, CUALQUIER COSA QUE PUEDA PASAR ES RESPONSABILIDAD DEL USUARIO, EL AUTOR SE DESLIGA DE CUALQUIER RESPONSABILIDAD POR INCIDENTES QUE ESTE SOFTWARE PUEDA OCASIONAR. EL AUTOR DE ESTE SOFTWARE NO PROPORCIONARÁ SOPORTE TÉCNICO NI RESPONDERÁ PREGUNTAS SOBRE SU USO, EL AUTOR NO REALIZARÁ ACTUALIZACIONES A ESTE SOFTWARE, ÚSELO BAJO SU PROPIO RIESGO.

En este punto supongo que los que no sean retrasados mentales entienden las advertencias, así que aquí les dejo el enlace para descargarlo.

Descargar

Espero que esto sea de utilidad y diviértanse si lo pueden usar ;)

4 comentarios:

  1. Yo creo que este en un gran aporte sobre este tema de grabaciones, felicidades se ve que es un software muy util y si lo piensas bien puedes llegar a hacerlo mas grande sigue asi.

    ResponderEliminar
  2. Te pasaste carnal, realmente se aprecia que alguien ponga algo de su tiempo para este pedo, muchas gracias luego comento que tal me fue y demas!

    ResponderEliminar
  3. Soy bastante bestia para usarlo, por eso no tocare nada hasta que investigue y sepa que es cada cosa. Se lo mostrare a unos cuates que andan en esos bisnes. SALUDOS.

    ResponderEliminar
  4. Intentare darle una prueba. Nunca he usado Python, asi que no se como me ira. Al menos la explicacion no se ve demasiado complicada.
    Se agradece que lo compartas. La calidad del video de Starfox me gusto, por cierto.
    Un saludo.

    ResponderEliminar