Compresión de Bluray en Ubuntu (GNU/Linux based) Cómo pasarlos a MKV

Hola a todos, desde ayer vengo haciendo un par de experimentos, que me han gustado bastante, y entre otras cosas lo voy a escribir aquí para aocerdarme en caso de pérdidad de los scripts que me he hecho.

Seguramente para la mayoría sea un poco «duro» el sistema o la forma que tengo de explicarlo, ya que lo voy a hacer en poco tiempo.

Una vez extraido el disco duro dispondremos de un buen montón de Gigas en una estructura que se puede considerar la siguiente:

Carpeta -> «Nombre en clave del bluray» -> BDMV -> STREAM -> un montón de m2ts.

Extraer las pistas

Bien, trabajar con m2ts, es bastante complicado, sobre todo si queremos cortar/pegar, sacar los capítulos o lo que necesitemos, para extraer las pistas que queremos en Windows hay un programa muy majo llamado «eac3to» que hace mágia, sin embargo en Linux no he encontrado nada igual. Maravillosamente eac3to funciona «casi» perfecto en Linux mediante Wine.

A eac3to.exe le pasaremos la ruta hasta la carpeta «Nombre en clave del bluray» ya que noes permite extraer una gran cantidad de información de sus pistas, capítulos etc. (Muchísima más que si cargamos directamente el m2ts).

Dejo en ejemplo donde se puede observar cómo extraer una piesta de vídeo, una de aucio comprimida en flac (lossless) y la información de los capítulos. Notad que he puesto la extensión de salida de vídeo en «.h264» ya que si ponemos «mkv» falla al extraer, así que nos lo quedaremos en formato RAW.

$ wine –version
wine-1.2.2

$ wine eac3to.exe «D:\Bantorra\The_Book_of_Bantorra_01\GNXA_1201″ 1:»D:\Prueba\01\Chapters.txt» 2:»D:\Prueba\01\video.h264″ -keepPulldown 3:»D:\Prueba\01\audio.flac»

Una vez ejecutado este comando dispondremos de tres ficheros, «chapters.txt» con la información de los capítulos, «video.h264» con el vídeo y «audio.flac» con el audio comprimido en flac.

Obtención del mkv

Como en video.h264 de lo que dispongo es de tres capítulos de una serie (The book of bantorra en este caso) seguidos mi intención es separarlos en capítulos individuales. Para ello haré uso de mkvextract, para cortar a la vez que unimos. Suena un poco raro pero es utilísimo.

Hay dos opciones, o usar la interfaz gráfica (mmg), o la «hardcore», usar la línea de comandos. Evidentemente aquí usaremos la segunda, además, ya que disponemos de la información de los capítulos existente en «Chapters.txt» la usaremos para <<cortar por tiempo>>. Aquí hay un ejemplo del fichero «chapters.txt».

CHAPTER01=00:00:00.000
CHAPTER01NAME=
CHAPTER02=00:01:16.994
CHAPTER02NAME=
CHAPTER03=00:02:47.042
CHAPTER03NAME=
CHAPTER04=00:12:03.014
CHAPTER04NAME=
CHAPTER05=00:22:15.042
CHAPTER05NAME=
CHAPTER06=00:23:45.007
CHAPTER06NAME=
CHAPTER07=00:24:01.106
CHAPTER07NAME=
CHAPTER08=00:26:40.140
CHAPTER08NAME=
CHAPTER09=00:28:10.105
CHAPTER09NAME=
CHAPTER10=00:38:22.133
CHAPTER10NAME=
CHAPTER11=00:46:16.232
CHAPTER11NAME=
CHAPTER12=00:47:46.197
CHAPTER12NAME=
CHAPTER13=00:48:02.213
CHAPTER13NAME=
CHAPTER14=00:48:50.261
CHAPTER14NAME=
CHAPTER15=00:50:20.226
CHAPTER15NAME=
CHAPTER16=00:58:36.263
CHAPTER16NAME=
CHAPTER17=01:10:17.296
CHAPTER17NAME=
CHAPTER18=01:11:47.261
CHAPTER18NAME=

El script que utilizo es el siguiente;

echo «<Ruta> <Nombre Salida>»

#SacarCapis
capis=$(cat «$1Chapters.txt» | grep «:» | awk -F= ‘{print $2}’ |tail -n 17 | awk -F»:» ‘{printf «%d:%d:%d.%d,», $1, $2, $3, $4}’ | sed -e ‘s/.$//’)

#MMG
«mkvmerge» -o «$1$2»  «–forced-track» «0:no» «–aspect-ratio» «0:16/9» «–default-duration» «0:24000/1001fps» «-d» «0» «-A» «-S» «-T» «–no-global-tags» «–no-chapters» «$1video.h264» «–language» «0:jpn» «–forced-track» «0:no» «-a» «0» «-D» «-S» «-T» «–no-global-tags» «–no-chapters» «$1audio.flac» «–track-order» «0:0,1:0» «–split» «timecodes:$capis»

Con esto conseguimos diversos ficheros que se llaman igual pero están numerados. Es decir, si de nombre de entrada pusimos «Capítulo-01.mkv» y empleamos 2 cortes por tiempo en el directorio destino nos apareceraán 3 ficheros «Capítulo-01-001.mkv», «Capítulo-01-002.mkv» y «Capítulo-01-003.mkv».

Juntar las partes que nos interesan

En mi caso particular, cada capítulo se divide en 6 partes, Prinicio, Opening, Parte1 del capítulo, Parte2 del capítulo, Ending y Previa. Quiero un único archivo MKV sin Opening ni Ending ¿Cómo lo consigo sin recomprimir?

En este caso lo más sencillo es emplear la interfaz gráfica mmg, ya que ni yo mismo entiendo la sintaxis del comando, pero bueno, ahí os dejo dos ejemplos para 3 y 4 vídeos. El comando lo he obtenidod e la interfaz gráfica que lo hace automágicamente. En la interfaz, lo que hay que hacer es cargar la primera parte, y darle al botón append tantas veces como necesitemos.

Ejemplo de 3 ficheros

«mkvmerge» -o «/home/alvaro/Descargas/Prueba/02/Capitulo-02.mkv»  «–default-track» «1:yes» «–forced-track» «1:no» «–display-dimensions» «1:1920×1080» «–language» «2:jpn» «–default-track» «2:yes» «–forced-track» «2:no» «-a» «2» «-d» «1» «-S» «-T» «–no-global-tags» «–no-chapters» «/home/alvaro/Descargas/Prueba/02/Capitulo-02-001.mkv» «-a» «2» «-d» «1» «-S» «-T» «–no-global-tags» «–no-chapters» «+/home/alvaro/Descargas/Prueba/02/Capitulo-02-003.mkv» «-a» «2» «-d» «1» «-S» «-T» «–no-global-tags» «–no-chapters» «+/home/alvaro/Descargas/Prueba/02/Capitulo-02-005.mkv» «–track-order» «0:1,0:2» «–append-to» «1:1:0:1,2:1:1:1,1:2:0:2,2:2:1:2»

Ejemplo de 4 ficheros

«mkvmerge» -o «/home/alvaro/Personal/Horchata/Video/Prueba/09/Capitulo-09.mkv»  «–default-track» «1:yes» «–forced-track» «1:no» «–display-dimensions» «1:1920×1080» «–language» «2:jpn» «–default-track» «2:yes» «–forced-track» «2:no» «-a» «2» «-d» «1» «-S» «-T» «–no-global-tags» «–no-chapters» «/home/alvaro/Personal/Horchata/Video/Prueba/09/Capitulo-09-001.mkv» «-a» «2» «-d» «1» «-S» «-T» «–no-global-tags» «–no-chapters» «+/home/alvaro/Personal/Horchata/Video/Prueba/09/Capitulo-09-003.mkv» «-a» «2» «-d» «1» «-S» «-T» «–no-global-tags» «–no-chapters» «+/home/alvaro/Personal/Horchata/Video/Prueba/09/Capitulo-09-004.mkv» «-a» «2» «-d» «1» «-S» «-T» «–no-global-tags» «–no-chapters» «+/home/alvaro/Personal/Horchata/Video/Prueba/09/Capitulo-09-006.mkv» «–track-order» «0:1,0:2» «–append-to» «1:1:0:1,2:1:1:1,3:1:2:1,1:2:0:2,2:2:1:2,3:2:2:2»

Et voilá, mágia, ya disponemos de un único fichero mkv con las partes que nos interesan sin tener que recomprimir el vídeo en ningún momento.

Comprimir el vídeo

Naturalmente como somos muy generosos y queremos compartir este descubrimiento y no podemos resubir los 5 GB que nos ocupa cada capítulo haremos unas versiones más ligeritas (400 MB aprox) para nuestros amigos.

En este caso emplearemos ffmpeg para hacerlo todo del tirón. Para comprimir con x264 necesitaremos un ffmpeg especial que tendremos que compilar nosotros mismos. Dejo un enlace a la guía de FakeOutdoorsman que empleé para compilarlo yo mismo.

Dejo el comando simplemente ya que creo que no requiere mucha explicación.

Compresión en un mkv, x264 + aac haciendo un resize a 1280×720

ffmpeg -i «Capítulo-01.mkv» -acodec libfaac -ab 128k -s 1280×720 -vcodec libx264 -vpre slow -crf 17.5 -threads 0 -level 41 ../RAWS/720/Capítulo-01.mkv

Compresión en un mkv, x264 + flac sin resize

ffmpeg -i Capítulo-01.mkv -acodec copy -vcodec libx264 -vpre slow -crf 16 -threads 0 -level 41 ../RAWS/1080/Capítulo-01.mkv

Espero que os haya gustado/resultado útil.

Saludos.

Bueno, por si acaso, le pongo copyleft a este artículo, el menos restrictivo posible, pero al menos citadme. (Batousay)

La imágen de Tux y el logo de Bluray las he sacado de aqui

Publicado por Batousay   @   10 mayo 2011

¿Te gusta este post? ¡Compártelo!

RSS Meneame Twitter Facebook

0 Comentarios

Todavia no hay comentarios. ¡Se el primero en dejar uno!
Dejar un comentario

Debes de estar logueado para dejar un comentario.

Post anterior
«
Siguiente post
»