Significado de las abreviaturas de mi título: CBR: Constant Bit Rate VBR: Variable Bit Rate ABR: Average Bit Rate
Estuve investigando y haciendo pruebas y mi objetivo fue cambiar el formato de un video a otro (o al mismo) queriendo mantener las mismas características del video original, y aquí nació mi inmensa preocupación, la de conocer con qué tipo de codificación ya sea CBR, VBR o ABR se hizo el bitrate del video original, esto es un poco difícil de conocer así sea usando MediaInfo o Bitrate Viewer, y he llegado a una conclusión y la expongo ante ustedes:
Para convertir un video no es importante saber si es CBR, VBR o ABR, lo que importa es conocer su bitrate como numero (Kbps) y en ello debemos basarnos en una conversión, ni más bitrate ni menos bitrate, sea cual sea el método de codificación de bitrate que se haya usado en el video original, al final un bitrate por archivo ya sea de video o audio es único.
Ya si usamos un encoder malo y le indicamos el mismo bitrate, esto si podría afectar la calidad del video final.
« Última modificación: 4 Septiembre 2019, 20:58 pm por dooku »
En línea
DEBES DE UNIRTE A MI... Y JUNTOS DESTRUIREMOS AL SITH.
- En el vídeo solo puede haber CBR o VBR, el CBR es contante y se mantiene igual en todo el vídeo, el VBR varía dependiendo a las necesidades del vídeo, por ejemplo, si el vídeo tiene partes donde no se muestra mucho "movimiento" entonces el bitrate es menor ya que no necesita tanta data para mostrar esa parte, aunque también puede haber partes que contienen mucho "movimiento" como una explosión o algo así, esta parte tendrá un mayor bitrate ya que se necesita más data para mostrar correctamente esa parte.
-- En caso del VBR se habla de un MinBitrate y de un MaxBitrate, que como su nombre lo dice, especifica el mínimo y máximo bitrate, la media de estos se llama ABR.
- PERO si de calidad se quiera hablar, hay que considerar "el original", de nada sirve darle un Bitrate de 50Mbs a un vídeo que originalmente tiene solo 1.2Mbs, no se consigue mayor calidad. Aquí otro PERO, porque hay muchos factores a considerar, por ejemplo el Codec y el FrameRate, cada codec comprime a su manera y obviamente esto cambia el BitRate, por esto se habla de "calidad", dependiendo del codec se puede indicar una calidad Sin Pérdida real (lossless), sin pérdida aparente, etc, esto da un nuevo bitrate.
- Los vídeos web como youtube, vimeo, straming, etc son por lo general CBR, lo que suelen variar es el FrameRate, por ejemplo, un video de una canción que tiene un fondo estático con la letra de dicha canción, aquí no se requiere de un gran FrameRate, así se ahorra también en BitRate.
- CBR es más compatible y manejable para reproducción dependiente como Internet. Si la velocidad de Internet es de 8Mbs entonces el vídeo debería de darse con un bitrate que no supere este valor, ni tampoco la capacidad del reproductor en sí.
- Se puede usar VBR, pero hay que considerar un MinBitrate, un MaxBitrate y un BufferSize, además de tardar más debido a que previamente hay que analizar el vídeo para decidir que partes tendrán un menor bitrate y que partes tendrán un mayor bitrate. VBR puede llegar a tener mejor calidad y menor peso que CBR a cambio de compatibilidad y tiempo.
Para convertir un video no es importante saber si es CBR, VBR o ABR, lo que importa es conocer su bitrate como numero (Kbps) y en ello debemos basarnos en una conversión, ni más bitrate ni menos bitrate, sea cual sea el método de codificación de bitrate que se haya usado en el video original, al final un bitrate por archivo ya sea de video o audio es único.
Ya si usamos un encoder malo y le indicamos el mismo bitrate, esto si podría afectar la calidad del video final.
- Es importante saber el Codec utilizado, también si es CBR o VBR para calcular un ABR. El bitrate en el archivo no es único, puede variar: VBR. Si usas un encoder que comprime menos que el codec previo y usas el mismo bitrate claro que afectas la calidad del video, incluso el mismo codec tiene varios PreSets o ProFiles que afectan al BitRate, FrameRate, calidad, etc, dependerá del destino del vídeo usar uno u otro (más compatibilidad, consumo de recursos, etc)
- Yo he escuchado por ahí que los Rippers de Vídeos (DVDRip, BDRip, etc) dependiendo de la necesidad suelen usar codecs muy compatibles como XVid en AVI para vídeos de ~700MB de vídeos de ~2horas, y dependiendo de la rapidez de filtrar dicho vídeo se hacen mejoras como: usar VBR en lugar de CBR, dar varias pasadas para calcular un buen VBR, decidir el MinBitrate y MaxBitrate codificando muestras del vídeo que contienen escenas con poco movimiento y con mucho movimiento respectivamente; cambiar por un codec como h264 o h265 que comprimen mejor videos de mayor resolución/calidad, exportar un MKV con muy buena calidad y en HD/FHD/4K de ~1.5GB, ~25GB o ~50GB con audios, subtítulos, escenas, todos seleccionables, etc XD.
Claro, hablando de obtener como resultado la misma calidad que el original, el video a generar se debe codificar con el mismo códec del original o con uno más actual como es el caso de H.264/AVC o H.265 que sin temor a equivocarme actualmente la están rompiendo, obteniendo el beneficio de calidad y tamaño, esto lo tengo claro.
Por otro lado, acá viene mi inquietud nuevamente y es por lo que me vi obligado a abrir este tema. Esto nace debido a que muchas veces MediaInfo no muestra si el video es CBR, VBR o ABR, pero si muestra el bitrate.
Mencionas que es importante conocer si el video a convertir es CBR, VBR o ABR, y aqui tengo dos dudas y las voy a citar considerando bitrates constantes y variables de manera general.
1) ¿Si un video tiene “X” Kbps de bitrate constante, perdería calidad si lo recodifico con el mismo bitrate como constante o variable? 2) ¿Si un video tiene “Y” Kbps de bitrate variable, perdería calidad si lo recodifico con el mismo bitrate como constante o variable?
Gracias.
« Última modificación: 6 Septiembre 2019, 05:56 am por dooku »
En línea
DEBES DE UNIRTE A MI... Y JUNTOS DESTRUIREMOS AL SITH.
- Primero entender que hoy en día prácticamente no se CBR por defecto, h264 siempre usa VBR a no ser que se ponga un MinBitrate igual al MaxBitrate. Además de que se prefiere usar escalas de Calidad que ofrece el codec en lugar de Bitrates, dejando al codec el cálculo del bitrate ideal. En h264 se considera la Calidad o CRF (Constant Rate Factor) desde 0 (lossless) a 51 (mínima calidad), por defecto el codec usa 23 y se considera "visualmente lossless" a 17 o 18.
- Solo se especifica el Bitrate para calcular el tamaño final que se quiere obtener a partir de la duración, por ejemplo si quiero que mi video pese 100MB hago el cálculo usando su duración:
(100 * 8000kb) / 500s = 1600KB/s
-- convierto mis MB a kilobits y los divido entre los 500 segundos que dura el video dándome 1600kb/s o 1.6Mb/s como bitrate que debería usar, claro que se tendría que considerar los MiB, KiB, el bitrate del audio, etc. Se suelen usar dos o más pasadas para precisar mejor el resultado de este cálculo.
1) ¿Si un video tiene “X” Kbps de bitrate constante, perdería calidad si lo recodifico con el mismo bitrate como constante o variable? 2) ¿Si un video tiene “Y” Kbps de bitrate variable, perdería calidad si lo recodifico con el mismo bitrate como constante o variable?
1. No se puede mejorar la calidad pero si empeorarla, si el bitrate nuevo es constante dependerá del preset (grado de compresión) y del profile (grado de compatiblidad) para obtener un archivo de menor peso y/o perder prácticamente nada de calidad.
2. Depende de como has hallado ese bitrate variable, el VBR tiene un MinBitrate y un MaxBitrate, por lo general los programas como MediaInfo muestran como bitrate el AverageBitrate (media). Programas como (MPC-HC (K-lite) o VLC )* tienen la opción de ver en tiempo real el Bitrate que está utilizando el vídeo mientras se está reproduciendo, mostrando el MinBitrate, MaxBitrate y AverageBitrate.
-- Como dije antes, por defecto se usa siempre VBR, si le dices a h264 que use cierto bitrate, este entenderá que quieres obtener cierto peso de archivo pero usara VBR en el vídeo dándole prioridad al tamaño estimado que se obtendría con ese bitrate especificado. Si quieres un CBR se tiene que poner también el MinBitrate y MaxBitrate iguales.
-- Con respecto a la calidad final, ocurre lo mismo que en mi respuesta 1 si tomas como bitrate el MaxBitrate, en caso de CBR obtienes un tamaño de archivo mayor y con VBR no debería haber diferencia notoria aunque depende del preset y el profile a usar.
---
* XD, por más que pruebo y pruebo el VLC no me termina de gustar, tengo entendido de que es el reproductor más popular pero no entiendo porque? XD, lo veo infinitamente mejor a Media Player Classic Home Cinema (MPC-HC) de K-Lite Mega.
-- Para mostrar en tiempo real el BitRate en MPC-HC: Ver > Estadísticas. Adjunto dos capturas que muestran como la Tasa de bits (BitRate) sube hasta 3781 kb/s en una escena con mucho movimiento ([0] corresponde al Stream de Video, [1] al Stream de audio, luego viene el AverageBitRate / ActualBitRate):
--- Luego en esta otra captura se ve como el BitRate baja hasta los 507 kb/s en una escena con poco movimiento:
-- En caso de VLC: Herramientas > Información del codec > Estadísticas (no tiene mucha info, solo el BitRate actual del video + audio):
Considerando un buen encoder con una configuración idéntica al archivo original, tanto en video y audio, para obtener su misma calidad es mejor guiarse por el tamaño del archivo original, si el archivo de nuestra conversión arroja un peso igual o sobrepasa por unos KB al archivo original, entonces estamos hablando de una calidad idéntica o una copia 1:1, no te parece? de este lado se excluye todo el tema de CBR, VBR o ABR (variante de VBR).
Saludos.
« Última modificación: 6 Septiembre 2019, 19:48 pm por dooku »
En línea
DEBES DE UNIRTE A MI... Y JUNTOS DESTRUIREMOS AL SITH.
- No tiene mucho sentido re-codificar de nuevo para obtener el mismo resultado , esto solo se suele hacer para intentar reparar el vídeo o esas cosas. Por ejemplo para cortar el vídeo, audio, agregar/quitar pistas de audio, video o subtítulos, para estas labores está el método "copy" eso no re-codifica las pistas, es útil para las labores que mencioné antes o cambiar el formato contenedor (no confundir con el codec compresor/descompresor) por ejemplo cambiar el mkv por un mp4.