Manual: Codificación de video (iPod Touch)

Para dar las gracias debes entrar o registrarte en el foro

Mensajes: 153 Agradecido: 0
06 Dic 2007, 01:07# 41

okok. solo que no tenia la ultima version. tenia la 1.3 y ahora ya tengo la nueva. haciendolo y a ver si va en itunes. aunque si he de hacer esto para cada video es un poco engorroso..

edit: me funciona, no problem. por lo que veo esto se da solo en lo que me bajo hecho en eeuu (series /peliculas en vo) por lo que no se si pasar el yamb por cada divx americano que me baje y asi luego solo lo he de convertir de la manera normal. si no para cada video mirar si va o na y pasarle el yamb es un palo.

Por cierto, dime si la manera de ir rapido con megui es ir haciendo scripts para cada video? no puedo hacer uno y cambiar solo el video de origen, porque si para hacerme toda la temporada de lost he de hacer 20 i pico scripts no es muy rapido.

Muchas gracias!

Gracias  
Etiquetado en:
Mensajes: 4851 Agradecido: 0
06 Dic 2007, 14:08# 42

ok.
Vale

Ese problema lo he venido teniendo hace algun tiempo con megui. Y he hablado con Kurtnoise, uno de los desarolladores de megui, para ver si puede solucionar el problema. Debe de ser q megui usa un sistema diferente para hacer el mezclado. Estoy seguro q lo solucionan pronto, lo mas seguro q con una actualización de mp4box.exe q es el muxer.

Por ahora tan solo tepuedo decir q paciencia y esperar :(


Lo de los scripts es mas simple. Es facil hacerlo de manera mucho más rapida... pero tienes q estar seguro q los videos son iguales!!. Si tienes 40 episodios, y los 40 tienen la missma resolución, los mismos codec, lo mismo todo... como tu dices es suficiente con tan solo cambiar el nombre del archivo. Yo lo q hago es: Supongamos 20 videos)


1.

Creo un script q sea el q me gusta, hago algunas pruebas, algunos ajustes... hasta dar con el script deseado.


2.

Despues modifico el script, para convertir tan solo 20 segundos del primer video, para asegurarme q el resultado es el ideal, pq si no tengo q codificar todo el video para despues ver si es el resultado el q quiero. Esto es importante, puesto q los scripts pueden ser desde muy simples, a increiblemente complejos:

scripts para el control de colores
para entrelazado/desentrelazado
para filtrar lienas, polvo, ruido...
para añadir ruido, un logo propio...
para modificar el sonido
para añadir videos concatenados
para cambiar el espacio de color

la lista podría ser interminable.

Ver el resultado final es importante, pero si creas un script muy complejo tb tardará mas en codificar, y si tienes q esperar un monton para ver el resultado final pues te mueres de la pena. Si se añade esta liena por ejemplo al script, justo debajo de la apertura del archivo:

Trim (1000, 1500)

lo q hace el script es q solo va a servir los frames desde el 1000 al 1500, es decía 500 frames. Si el video está a 25fps, 500 frames serían 20 segundos, tomados a partir del frame 1000, q es el segundo 40 o así.

con lo q la codificación es muy rapida, puedo ver los resultados aparentes y si estoy ya confirme, elimino esa linea y empiezo a codificar todo el video.


3.

Como tengo la certeza q todos lso videos son iguales entre sí, el script q he creado sé q funcionará perfectamente para los otros, luego lo q hago es copiar tantas veces ese script como videos tenga.

Ahora edito uno a uno y le modifico el nombre al archivo:

el original se llama 1.avi
el segundo le pongo 2.avi
3.avi
...

así q lo unico q modifico en el script es el numero qprecede a la extensión, pq mis videos están todos en la misma carpeta, con numeros desde el 1.avi hasta el xxx.avi


4.

Cuando he modificado los script voy a megui y voy añadiendo uno a uno:

abro un script, le doy a queue
abro otro, lo mismo
abro otro lo mismo
...

solo la parte del video
los nombres de salida megui los pone por defecto, y si el sciprt se llama 1.avs el archivo resultante por defecto será 1.mp4

Cuando he añadido todos los script, le doy a epezar y me voy a la cama.

5.

pro la mañana tengo en la carpeta dnd tenia los scripts de video todos los archivos mp4 creados. Así q en otra carpeta diferente, preparo los script de audio. Como he sido listo, no tengo q modificar los script, ya q me valen igual para el audio. Eso si, los pongo en otra carpeta llamada audio.

Abro megui, hago lo mismo para el audio, y le doy a empezar. El audio tarda poquito así q no me importa esperar.

Cuando termina en la carpeta audio al aldo de cada script, esta tb archivos llamados 1.mp4 hasta xxx.mp4, pero esta vez de audio


6.

Ya lo tengo todo, oslo queda mezclarlo. Cuando son muchos videos, la verdad me es mucho mas rapido usar yamb q megui. pero ya es a gusto de cada cual.

Mi Blog sobre iPod/iPhone, Nueva dirección -> http://blog.theliel.es
Repositorio -> theliel.es/repo/repo.xml (proximamente)

Como hacer preguntas inteligentes

No contesto MP, lo que se quiera preguntar en un post o hilo nuevo
Gracias  
Mensajes: 153 Agradecido: 0
06 Dic 2007, 22:56# 43

esto del trim es una ayuda inmensa. ahora estoy mirando que mode va mejor, si automated 2 pass, abr o los demas

sigo probando

THNXS!!

el que mejor ma va es constant pass a 27. rapido y bien

no se si es el mejor pero creo que para un ipod ya va bien

Imagen
Imagen
Imagen
Gracias  
Mensajes: 4851 Agradecido: 0
07 Dic 2007, 00:35# 44

constans pass no existe, o es Constan Quality o Constan Quiantizer.

el mejor método es crf, q es Cosntan Quality. Pero es más abstracto.
Hay dos modos de codificar un video:


Bitrate: (Una pasada)

En q tu asignas de manera manual el bitrate mínimo/maximo de cada fotograma. El bps quire decir bits por segundos (en realidad lo q ponemos no son bps, son kbps). Esto quiere decir q si establecieramos un bitrate de por ejemplo 1000 kbps

1 byte = 8 bits -> 1000 kbs = 125 Kb por segundos.
Si nuestro video tiene 10 segundos, el video final será seguro seguro de unos 1250 kb = 1.2 Mb. aprox

Esto quiere decir q si ponemos nosotros el bitrate sabremos casi a ciencia exacta el tamaño final del video. Y normalmente esto es precisamente lo q queremos. Depende de las opciones de codificación, a veces 1000 kbps tendrá una calidad y otras veces otra diferente. Por ejemplo, si estamos codificando anime. Anime es de las fuentes q mas se puede comprimir. Pq? pq las imágenes son estáticas, y tan solo hay movimiento en el primer plano, con lo q se potencia de manera imprsionante el uso de b frames q son altamente compresibles. Luego una peli anime de la misma duración q una peli normal, con los mismos ajustes en la codificación (exceptuando el bps) podría tener la misma calidad q la peli normal, pero a lo mejor con el bitrate de un tercio del otro. Pero aun así, es muy facil comprender el escalado de la calidad frente al tamaño del archivo, ya q es una relación lineal.



Bitrate: (multipasadas)

Codificar por bitrate tiene alguno q otro problema... si se usan especialmente bitrates muy bajos, es bueno realizar varias pasadas. h264 es el mejor codec de compresión en muchos aspectos, y uno de sus platos fuertes es q con muy muy poco bitrate puede dar unos resultados increibles. Pero la codificacion por bitrate establece la cantidad de bits q se van a usar en un segundo. el fps establece el numero de imagenes en un segundo, en PAL es 25. Esto quiere decir q un bitrate de 100Kbs = 12.5 Kb/s (por ejemplo) a 25 fps por segundo, si se repartiese de manera igualada a todas las imagenes por igual se tendría q cada imagen se puede codificar tan solo con 12.5/25 = 500 bytes!!, medio kb. y todas las imagenes se codificarían exactamente con 500 bytes.

Pero claro... si pensamos un poco, hay imagenes mas complejas q otras. No es lo mismo una imagen en la q es todo en negro, a una imagen llena de colorido. Si a todos los frames se les codificara al mismo bitrate, se gastaría el mismo numero de bits en una imagen super compleja, q en un fondo negro. Pasa lo mismo si pensamos en fotos. Una foto en blanco y negro con todo en negro ocupa infinitamente menos q la misma foto del mismo tamaño en la q esta a todo color de un paisaje bellísimo y compleja.

Luego sería un desperdicio de bits tratar a todas las imagenes por igual... y más aun cuando disponemos de muy pocos bytes (de ahí la importancia extrema con bitrates bajos). De ahí se saca el concepto de multipasada. Este concepno no es viejo, y divx/xdiv tb lo usan desde hace mucho tiempo.

Se puede configurar el codec para q antes de realizar la codificación haga una "codificacion falsa" con los mismos ajustes y todo igual, en la q en vez d comprimir, analiza frame a frame todo el video, estableciendo q frames necesitan mas bits y cuales menos. Y esa informacion la guarda en archivo de estadística temporal. (en megui se llama este archivo nombrevideo.stat (creo recordar). y en la segunda pasada (en el caso de ser solo dos pasadas) usa ese archivo de entrada para codificar el video, usando esa informacion para codificar los frames con el bitrate justo y necesario, veamos un ejemplo:

un video de un segundo con un fps de 5 a un bitrate de 100kbps:

modo bitrate de una sola pasada -> 5 imágenes, 100 kbps -> 100/8 = 12.5 Kb/s | 12.5kb / 5 = 2.5Kb por imagen

frame 1 = 2.5Kb
frame 2 = 2.5Kb
frame 3 = 2.5kb
frame 4 = 2.5kb
frame 5 = 2.5kb
----------------------
12.5 kb en total


modo bitrate de dos pasadas:

frame 1 = 0.5Kb
frame 2 = 3.5Kb
frame 3 = 4.5kb
frame 4 = 3.5kb
frame 5 = 0.5kb
--------------
12.5Kb en total


-------------------------------

El bitrate es el mismo, pero se reparte mucho mejor, segun la complejidad de la imagen. Si se realizan 3 pasadas, simplemente se usa una primera pasada para ajustar el bps, y la segunda para ajustar de manera mas fina la primera pasada... y así sucesivamente. El modo de segunda pasada turbo significa q el primera pasada es rápida. Si no se activa turbo, el proceso de codificado es exactamente el doble, dado q son como dos codificaciones. Si se activa turbo, la primera pasada se realiza con ajustes mas livianos, en los q la codificación de la primera pasada es mucho más rapida. El reparto de bits no se hace tan bien, pero es un buen modo de acelerar la codificacion.

Aun así, en ambas situaciones, la codificacion multipasada es "lenta"



Cuantización:

explicar la cuantización es complicado, ya q significaría explicar el proceso de codificado un codec... a ver como puedo explicarlo...

La cuantización sería la etapa de la compresión en si misma. h264 hace montones de calculos matematicos para predecir la imagen siguiente, para saber si estamos en escenas de alta velocidad, ajustes de colores, filtros... una cantidad de conceptos matemáticos q se escapan all 90% de las personas, en los q me incluyo. Cuando se hacen todos esos calculos, se llega al resultado final: ya sabemos el resultado, ahora... cuanto comprimimos? mucho? poco? ahí entra la DCT (Transformada discreta del coseno). Es un modo de compresión de datos, como muchos otros. Pues digamos q la quantización es una matriz q se une a la DCT para establecer la calidad final de la imagen resultante.

Cuanto más baja sea la cuantización, la imagen será más perfecta. Son terminos mucho mas abstractos q el bitrate, en el q está muy claro lo q se está haciendo. Con la cuantización, ni el más experto puede saber el resultado final de la imagen teniendo de entrada la cuantización usada.

Se codifica por quantización cuando el tamaño final del video no nos importa demasiado, y lo q buscamos es una calidad deseada. Es el concepto completamente opuesto del bitrate. Con Cuantización le decimso al codec la calidad q queremos, con bitrate el tamaño q deseamos.

Con Q (cuantización) tan solo es necesario una pasada, el bitrate resultante de usar Q será el q sea, no es importante. Ejemplo:

Costant Quantizer = 18

Le estoy diciendo al codec q no me importa q bitrate tendra al final, q lo q quiero es q mi segundo de video tenga por igual una calidad equivalente a una cuantización de 18.

Pregunta: ¿como se q calidad da una cuantización de 18? no se sabe, pero con experiencia y com pruebas se puede intuir.

Yo se q un Q de <18 me va a dar una imagen resultante casi transparente, es decir, q la imagen final será igual a la de entrada. sería lo ideal en un mundo utópico... claro q una Q de 18 nos daría un tamaño final de video muy grande, a lo mejor nos sale un bitrate de 2000 o lo q sea.

Pero se puede ir probando...
como comparamos la calidad de un video? hay dos modos
1º. Con los ojos
2º. Con una formula matematica q nos mide con un numerito la diferencia entre el frame de origen y el frame comprimido

Ahora mismo, el más usado es SSIM. Se puede configurar x264 para q cuando finalize la compresión, nos de tb el SSIM resultante. Un 1 sería imagen perfecta, a partir de SSIM > 0.97 sería una imagen casi transparente. ES uyna medida tb un poco abstracta, pero sirve muy bien para saber como varían ciertos ajustes del codec en la calidad final.

Es importante, pq si usas una Q de por ejemplo 18 y quieres comparar el resultado con un Q de 19, te das cuenta a lo mejor q la diferencia de tamaño es considerable y a lo mejor no eres capaz de distingir las diferencias.

Dado q toch acepta bitrates de hasta 10Mb/s, siempre qpodamos sería bueno usar cuantización, pero como lado negativo es q no sabremos el tamaño final del video, y q es mas abstracto medir la calidad de este.

Yo empezaría comprimiendo, si os gusta la cuantización, con un Q > 22 o 24. Si el resultado es pobre usar un punto menos, si nos gusta, probar con un punto más a ver si tenemos un resultado aceptable, con mucho menos espacio. Es un poco prueba error.


Ahrao bien, x264 usa dos modos de quantización. Constan Quanticer y Constan Quality. x264 es el unico codec q por ahora implementa este invento. Constan Quality no usa una cuantización constante, sino q ajusta la cuantización según se necesite. Si dices usar una cuantización de 24 y un frame puede usar una cuantización de 28 para la misma calidad, usará 28 para ese frame. Luego muchas veces obtendremos un poco mas de calidad y menos espacio.

Si queremos usar cuantización, usar Constan Quality siempre, no tiene ningun lado negativo frente a Constan Quantizer.

Dices en el post de usar Constan Quant de 27... pude dar buenos resultados si, aunq la imagne a 27 debería de empezar a tener perdidas de calidad. La proximavez, marca SSIM, y cuando termine dla codificación, en megui, en logs mira el SSIM resultante, seguramente para una cuantización de 27 te de un SSIM de 0.94 0.95... q a lo mejor puede estar muy bien eh! y con una reducción considerable de tamaño en el archivo final

Mi Blog sobre iPod/iPhone, Nueva dirección -> http://blog.theliel.es
Repositorio -> theliel.es/repo/repo.xml (proximamente)

Como hacer preguntas inteligentes

No contesto MP, lo que se quiera preguntar en un post o hilo nuevo
Gracias  
Mensajes: 105 Agradecido: 0
07 Dic 2007, 00:44# 45

Theliel como hago para pasar mis DVDs de la serie Heroes con subtitulos y todo?. O sea, quiero convertirlas para mi Touch con audio en inglés y subtitulos en español. Lo tendre que hacer con otro programa?. Gracias de antemano

iPod 30 GB (5.0 G) White
Gracias  
Mensajes: 4851 Agradecido: 0
07 Dic 2007, 01:04# 46

el ripeo si. EL ripeo no es más q la accion de pasar el dvd al disco duro desencriptándolo. Programas como dvd shrink o DVD decriptter. En ellos eliges el audio q quieres, los subtitulos q quieres y demas. Eso te creará seguramente un archivo de mucho tamaño en el disco duro, pero una vez echo eso, el resto es codificarlo con megui.

ipod soporta tb substitulos, así q sin problemas, a la hora de multiplexarlo, tan solo tienes q seleccionar los substitulos.

megui no incorpora evidentemente un decrypter de dvd por mil razones evidentes q no voy a enumerar. Eso sí, evidentemente, uses el programa q uses para desencriptar el dvd, no comprimas nada!! simplemente usa un programa de ripeo par aextraer los datos desencriptados del dvd. Te recomiendo DVD shring, y cuando carges el DVD no uses compresión ninguna, así tendras el dvd en el pc en crudo con los idiomas y audios q quieras.

Mi Blog sobre iPod/iPhone, Nueva dirección -> http://blog.theliel.es
Repositorio -> theliel.es/repo/repo.xml (proximamente)

Como hacer preguntas inteligentes

No contesto MP, lo que se quiera preguntar en un post o hilo nuevo
Gracias  
Mensajes: 105 Agradecido: 0
07 Dic 2007, 02:29# 47

Te agradezco Theliel, si yo uso el DVD Decrypter y el DVD Shring para hacer mis DVDs, pero mi duda es el tema de los subtitulos? como los pongo junto con el video?? o como me decís vos, como los puedo poner directamente en el iPod dado que el iPod reproduce tambien los subtitulos??? los meto en el formato de los subtitulos?? donde los meto??!!! gracias

iPod 30 GB (5.0 G) White
Gracias  
Mensajes: 4851 Agradecido: 0
07 Dic 2007, 13:43# 48

en teoría el ipod es compatible con el standar q usa mp4. El DVD shring te debería de dejar extraer los substitulos a archivo, no recuerdo bien ahora la extension q tenaín... sbr? no estoy seguro.

El resto lo haces como siempre, comprimes video pro un lado, audio por el otro, y a la hora de multiplexarlo metes tb los substítulos, seleccionas el arcihvo y listo.

De memorieta no te lo puedo decir, pero creo recordar q DVD shring te salvaba los substitulos aparte. Si no no te preocupes q me pongo a hacer algunas pruebas y ya comento lo q sea.

un saludo

Mi Blog sobre iPod/iPhone, Nueva dirección -> http://blog.theliel.es
Repositorio -> theliel.es/repo/repo.xml (proximamente)

Como hacer preguntas inteligentes

No contesto MP, lo que se quiera preguntar en un post o hilo nuevo
Gracias  
Mensajes: 153 Agradecido: 0
07 Dic 2007, 22:43# 49

esto es como tener una clase particular en codificacion de video. muchas gracias por el tiempo que te tomas.

A lo que voy: use el constant cuantizer a 26, no 27 y se ve muy bien. para la siguiente codificación usaré el ssim. y tambien probaré usar constant quality a 26. en teoria tendría que ocupar menos espacio...

Otro tema: sobre lo que decías de la manera rápida de hacer videos, no me ha salido. te explico. tengo la temporada entera de The Tudors. Son 10 capitulos y he nombrado los videos como Tudors01, Tudors02 y así sucesivamente. Luego creo un script de que me ponga el tamaño a 480x270 con el video Tudors01.

Guardo y voy a la carpeta donde tengo los videos TudorsXX y el script nombrado como el video, osea, Tudors01. Lo copio 9 veces y le cambio el nombre a los scripts de copia, para que pasen de llamarse copia de Tudors01 a Tudors02, Tudors03, etc.

Abro Tudors02, le doy a queue, codifica y me ha codificado el video 01, no el 02. Que paso me falta?

Última edición por oroig el 07 Dic 2007, 23:06, editado 1 vez en total
Imagen
Imagen
Imagen
Gracias  
Mensajes: 4851 Agradecido: 0
07 Dic 2007, 22:58# 50

no a ver, tienes q editar el script tb y modificar en él el nombre del video. Sino lo haces, siempre estará comprimiendo el mismo.

Usando Constan Quality puede dar un archivo algo mas pequeño o no, pero seguramente de un archivo con más calidad. SSIM es un buen modo de apreciar diferencias q muchas veces se nos escapan.

Un saludo

PD: uff, edita tu post y borra el quote de tu post, q ya suficientemente escribo yo como para q me lo citen :P, por comodidez al leer vamos, tu me entiendes :)

Mi Blog sobre iPod/iPhone, Nueva dirección -> http://blog.theliel.es
Repositorio -> theliel.es/repo/repo.xml (proximamente)

Como hacer preguntas inteligentes

No contesto MP, lo que se quiera preguntar en un post o hilo nuevo
Gracias  

Publicidad
Publicidad