Mostrando entradas con la etiqueta Codec. Mostrar todas las entradas
Mostrando entradas con la etiqueta Codec. Mostrar todas las entradas

lunes, 7 de diciembre de 2020

Transformación de los DVDs a ficheros contenedores. Casos problemáticos

Como ya decía hace más de un año, estoy en la paulatina —y lenta, por falta de tiempo— eliminación del material óptico que tengo, CDs, DVDs etc, porque ocupa mucho mucho espacio y ya no tengo dispositivos para oírlos/verlos, practicamente, solo la consola PS4. Los de música es sencillo, sigo usando Sound Juicer, como decía hace mucho tiempo, pero convirtiendo a FLAC, para evitar pérdida de calidad. Con los DVDs es otra historia. Una vez conseguido saltarse la protección, que algunos países puede ser ilegal —comprobar donde está uno antes de seguir con la operación copia privada—, parece sencillo con HandBrake; simplemente indicas como fuente el directorio VIDEO_TS y listo, previa configuración del codec de vídeo, tasa de imágenes, calidad requerida, codecs de audio y formato de subtítulos. Bien, a veces es así, y otra no. Por ejemplo, puede tener un menú inicial que confunde al programa, dando como resultado un vídeo vacío. Ejemplo,

Un segundo error que me tiene pasado se da cuando el DVD tiene más de un vídeo, y Handbrake decide que el objetivo es el último, que resulta ser un extra o una entrevista o lo menos importante de todo el DVD. La solución podría ser aislar los ficheros vob que contienen lo que queremos, por ejemplo en este caso,


y que Handbrake los recodificara, pero bajo estas circunstancias Handbrake los trata individualmente, no como un vídeo completo. Dándole algunas vueltas, la forma más sencilla de arreglarlo es unirlos mediante MKVToolNix Gui. Al abrir el primero, recoge el conjunto de los ficheros que forman vídeo que interesa como partes adicionales y se une sin transformación alguna en uno o dos minutos en un fichero contenedor mkv matroska.


Después se edita y codifica el mkv resultante con Handbrake,


 y ahora sí que está listo; un Dvd menos ocupando sitio.

martes, 14 de noviembre de 2017

Conversión de ficheros dsf a flac - ffmpeg

Expliquemos los antecedentes. Estabamos escuchando "Crises", el álbum de Mike Oldfield.


Tiene cierta importancia para mi, por que recuerdo que fue el primer disco que me compré cuando pude disponer de una columna musical (en aquellos momentos —y ahora— me gustaba la música del señor Oldfield; la anterior a 1985, después he perdido interés en la repetición). Ese disco contiene la canción "In high places" y discutíamos si la voz del cantante era de hombre o mujer. Para aclarar las dudas, el cantante de esa canción es Jon Anderson, el cantante de Yes.


Lo interesante es que la voz de Jon Anderson es muy aguda, de contratenor, y de esa canción me atrae lo bien cantada que está. Como podéis ver, en la wikipedia dicen de la voz de Jon Anderson:

"La voz de Anderson es a menudo descrita como «angelical». Él mismo considera que posee un registro de voz de contatenor, capaz de alcanzar notas muy altas sin caer en el falsete, mientras mantiene la suavidad que se asocia constantemente a su voz. Incluso durante interpretaciones en vivo, tales como las registradas e incluidas en el álbum Yessongs, Anderson nunca cae en el falsete, como sí lo hacen frecuentemente muchos otros cantantes en actuaciones en vivo para conservar su fuerza vocal."

A mi nunca me ha interesado la música de Yes, pero la curiosidad de escuchar en directo a Jon Anderson hizo que buscara el disco Yessongs. Debido a mi edad, yo prefiero escuchar la música, y no andar buscando en youtube, así que me encontré con una versión con ficheros dsf, que son la extracción de un disco SACD. Como es natural, no dispongo de hardware para leer este tipo de discos y tampoco codecs para leer los ficheros, y era solo por la curiosidad de oír la voz de Jon Anderson. Después de buscar en la red, a pesar de ver que parece que el formato requiere librerías especiales, encontré una página donde encontré la clave. La página describe diferentes formas de extraer sonido y como introducirlo en contenedores mkv. En resumen, y en relación al sonido extraído de un SACD, el formato es diferente y se caracteriza por la  alta tasa de frecuencia de muestreo que tiene la música. Para conocer esa frecuencia aplicamos ffprobe; por ejemplo:

ffprobe '03 - YES - CLOSE TO THE EDGE.dsf'

El resultado es, después de muchas líneas

Stream #0:0: Audio: dsd_lsbf_planar, 352800 Hz, stereo, fltp, 5644 kb/s

Es decir, la frecuencia es de 352800. Esa frecuencia entre 8 nos da 44100Hz. Una vez sabido eso, aplicamos ffmpeg aplicando el codec deseado (en este caso flac) y la frecuencia correspondiente

ffmpeg -i '03 - YES - CLOSE TO THE EDGE.dsf' -c:a flac -ar 44100 03.YES.CLOSE.TO.THE.EDGE.flac

y listo.
Utilidad; para mi, ninguna, por que no tengo discos SACD ni tengo interés en Yessongs. Era solo una curiosidad. Para los que tengáis discos SACD y queráis generar ficheros legibles en cualquier máquina, primero tendréis que extraer un iso de vuestros discos, que es lo más difícil, y no es el objeto de esta entrada. Una vez logrados los ficheros de las canciones, dsf, por ejemplo, la transformación a flac u otros codecs es bien sencilla.
Para ser sinceros, si ha supuesto un conocimiento nuevo para mi. Ya no tengo una columna musical de calidad, pero he descubierto que la barra de sonido LG que tengo con la televisión lee FLAC. Pensaba que no, ya que la tele, también LG, no lee FLAC (tengo que introducir una línea AAC a los mkv con flac). Y, ¡cómo de oye!.

PD. Una voz bien aguda la de Jon Anderson. Un Farinelli moderno

viernes, 17 de marzo de 2017

Nautilus. Problemas... ¿con vlc?



Desde hace un tiempo —largo, no me acuerdo cuando empezó— estoy teniendo problemas con nautilus. El sistema —Fedora 25, pero también con 24 y 23...— se inicia, llamo a nautilus, trabajo en lo que sea y, tarde o temprano, nautilus se bloquea y hay que recurrir al teminal y matarlo

killall nautilus

Debido a ello normalmente llamo a nautilus desde el terminal, para leer los errores y comprender que pasa. En general los errores son del tipo

Stream with high frequencies VQ coding
libpng warning: iCCP: known incorrect sRGB profile

que asocio a un plugin de conversión de imágenes,

[00007f5f38d31c08] core decoder error: failed to create audio output
[000055be0e896ee8] pulse audio output error: digital pass-through stream connection failure: No soportado
[000055be0e896ee8] core audio output error: module not functional
[00007f5f38d57de8] core decoder error: failed to create audio output

que asumo que es algún sonido con codec no soportado,

pero cuando se bloquea todo los errores suelen ser

VLC media player 3.0.0-git Vetinari (revision 2.2.0-git-10582-g9eb9eb0bd2)
[00005596eb6311c8] core libvlc: Ejecutar vlc con la interfaz predeterminada. Use «cvlc» para usar vlc sin interfaz.
Failed to open VDPAU backend libvdpau_va_gl.so: cannot open shared object file: No such file or directory
QObject::~QObject: Timers cannot be stopped from another thread

que deberíamos asociar a VLC. El problema está en que muchos bloqueos se hacen sin que haya llamado a VLC o a cualquier vídeo.

Lo llevo con resignación. Una pequeña cruz de cada día

martes, 22 de julio de 2014

Resoluciones de otros tiempos: CVCDs

Buscando entre los restos históricos del hardware que tengo almacenado encontré unas cajas antiguas que contenían... 550 CDs en los que había codificado CVCDs.


¿Qué es un CVCD? Como dice la siempre presente wikipedia, «El CVCD, (Compressed Video CD o disco compacto de video comprimido), es un formato de almacenamiento de vídeo para discos compactos. Se trata de una versión no estándar y mejorada del formato Video CD (VCD), aunque sólo varía en la velocidad de bits utilizada para la reproducción.»
Este formato nos permitía ver copias «privadas» en los reproductores de salón antiguos, incapaces de reproducir un fichero avi, ya que no llevaban chips de decodificación. Además, no era necesario mantener el formato estándar del formato VCD (1150 kilobits por segundo (kbit/s) de vídeo,y 224 kbit/s en audio MP2; es decir, 80 minutos de película). Al recortar la calidad se podía meter una película en un solo CD. Así que para ver en esos tiempos antiguos (unos 15 años, más o menos) en la televisión una película de 90-100 minutos, o se partía en dos VCD o se codificaba con más pérdida en CVCD. Pues esa foto son 550 CVCD, con unos ficheros multimedia de diferente origen y condición. Y ahora están en el reciclaje para acabar siendo cazadoras. Hoy en día, con resoluciones de 1920x1080, ver películas en resoluciones de 352x288, similares a las de vídeo VHS.
¡Qué tiempos aquellos! y ¡lo que le llevaba a las máquinas del siglo pasado recodificar las películas!

miércoles, 6 de junio de 2012

Transformación de vídeos de Youtube. Episodio 2

Tras diferentes intentos sobre los vídeos comentados en la entrada anterior, podemos resumir los resultados obtenidos hasta ahora.
1. Los ficheros obtenidos con formato webm son fáciles de cortar y, a pesar de que los ficheros originales presentan un error de duplicación de imágenes, debido a que ese contenedor depende del formato matroska, las mkvtoolnix nos permite unirlos aunque la frecuencia de imágenes de los dos cortes no sea idéntica. Con ello logramos un corte webm de 6 minutos que queda perfecto (no lo cuelgo por que no creo tener derechos para hacerlo, ya que seguramente existen Copyright).
2. El objetivo de tener un formato más abierto choca con los errores de los ficheros originales. Todos los tipos de ficheros bajados con youtube-dl (flv, mp4 y webm) generan pérdidas de "frames" que hacen que los cortes tengan frecuencias distintas de imágenes y no se puedan unir mediante mencoder o, incluso, VirtualDub.
3. El intento de VirtualDub me ha sorprendido, ya que al hacerlo a través de wine, sin codecs en el emulador, creí que sería posible. Primero he transformado los flv de la parte 2 y 3 a un contenedor avi  con codec xvid de vídeo y mp3 de audio mediante mencoder (30 frames perdidas en la parte 2 y 1 en la parte 3)

mencoder vXto9zcwlZg.flv -o salida1.avi -oac mp3lame -lameopts br=128 -ovc xvid -xvidencopts bitrate=1200

mencoder KNjQBzp-q5Y.flv -o salida2.avi -oac mp3lame -lameopts br=128 -ovc xvid -xvidencopts bitrate=1200

Sin embargo, al intentar unirlos por un simple append en VirtualDubMod 1.5.2 me ha dado un mensaje claro; la diferente frecuencia no hace posible la unión


4. Sorprendentemente, si he podido unir esos esos mismos ficheros avi mediante avidemux. Además he podido cortar el inicio, el fin. Los anuncios solo he podido eliminarlos en parte, seguramente debido a que se han generado imágenes maestras con gran separación, con lo que no es posible cortar después de la última imagen maestra. Se podría corregir, supongo, marcando en la transformación con mencoder una frecuencia por ejemplo de 1 cada 30, en vez de 1 cada 300, que suele ser lo habitual (aunque en mencoder no lo sé). Sin embargo el resultado final es bueno en imagen, pero el sonido acaba varios segundos antes que el vídeo, a pesar de que en los los dos avis transformados el propio mencoder había sincronizado midiendo el "delay" de 0,026 segundos al transformar.

Para terminar, se ha logrado el vídeo deseado, pero solo en formato webm. Los intentos de conseguir un formato más "estándar" han provocado desincronías de imagen y sonido debido a errores en los vídeos originales. Curiosamente, a pesar de haber trabajado mucho más con winff hasta el día de hoy, hemos logrado mejores resultados con mencoder que con ffmpeg.

No quiero olvidarme de dar las gracias a hckorootx por todo el tiempo que ha dedicado para encontrar una posible solución que nos permitiera obtener el vídeo que buscábamos.


viernes, 1 de junio de 2012

Vídeos webm; cortar y unir

Por razones de docencia, me interesaba unos minutos del episodio sobre el Ártico de Beyond Survival. Como es natural, es muy sencillo conseguirlo en Youtube, ya que en general estos programas están colgados en su versión inglesa. Si alguién tiene curiosidad, en Youtube solo hay que buscar beyond survival artic, y encontrará el programa dividido en 5 partes. el problema reside en que lo que nos interesa era el final de la parte 2 y el principio de la parte 3. ¿Como lograrlo?

1. Bajar los ficheros. Tenemos varias opciones; lo más fácil es usar la extensión DownloadHelper en Firefox. En Chrome/Chromium tenéis aplicaciones o extensiones para que os aparezca en los ficheros de youtube la opción de descarga. Finalmente, en terminal (¡por supuesto!) existe la aplicación youtube-dl. Bajamos mediante youtube-dl todas las partes

youtube-dl url

Las partes 2 y 3 corresponden por ejemplo a:

youtube-dl http://www.youtube.com/watch?v=vXto9zcwlZg
youtube-dl http://www.youtube.com/watch?v=KNjQBzp-q5Y

Los ficheros que obtuve fueron del formato webm, descrito en su faq como

"WebM is an open media file format designed for the web. WebM files consist of video streams compressed with the VP8 video codec and audio streams compressed with the Vorbis audio codec. The WebM file structure is based on the Matroska media container."

Los que prefieran trabajar en otros formatos, la solución es

youtube-dl --all-formats url

Y así bajará todos los contenedores presentes (webm, flv, mp4...).

Se observaron los vídeos, anotando los segundos iniciales y finales de cada parte para los siguientes pasos.

2. Recortar los vídeos. Las GUI de las que disponía no me permitieron cortar de forma fácil el vídeo, así que me fui a las aplicaciones CLI. Lo más sencillo es recurrir a ffmpeg

ffmpeg -i video.webm -vcodec copy -ss 190 -t 320 -acodec copy corte1.avi

siendo
-vcodec copy y -acodec copy significa que no alteramos los vídeos, manteniendo los codecs de video y audio, ya que solo queremos cortar
-ss 190 el segundo donde empieza el corte (en este caso de la parte 2)
-t 320 el tiempo de duración en segundos que yo quiero a partir de ese 190


3. Unir los dos cortes. No todos los formatos de vídeo permiten la unión con una simple concatenación. En el caso de que fuera así, con un simple cat los podemos unir

cat video1.mpeg video2.mpeg > video.mpeg

El ejemplo indica vídeos mpeg, ya que vídeos así sí se pueden concatenar. En el caso de webm no funciona. Una solución es la transformación previa , por ejemplo a mpeg, pero eso supone una pérdida de calidad, solo para unir, así que hay que evitarlo. Gracias a esta dirección, descubrí que se pueden unir utilizando las mkvtoolnix

mkvmerge -o video.webm corte1.webm +corte2.webm

lo que tiene sentido, si el formato webm está basado (ver arriba) en el contenedor matroska. Según otras páginas, tambien es posible hacerlo de forma gráfica, con las mkvtoolnix-gui, pero no lo he probado.

Todo ello me ha dejado un vídeo de unos 6 minutos que contienen exactamente lo que yo quería, una piel de caribu con larvas de Hypoderma tarandi, es decir, con barros. De esta forma podemos enseñar diferentes especies de estas moscas parásitas afectando a otros hospedadores diferentes a los de aquí, las vacas.

4. Recodificación
Solo queda un último paso, que es la transformación de ese webm a otro formato que se pueda proyectar en casos en que no haya disponibilidad de red y con ordenadores de pocas prestaciones, antiguos, sin codecs, etc... Sin embargo, por ahora he tenido problemas. Winff gráfico y las ffmpeg en terminal indican errores que impiden la conversión. Debido a dependencias de librerías, solo puedo instalar transmageddon en la versión 0.16-1, y no lo puedo configurar adecuadamente para conseguir un vídeo razonable. Mencoder en terminal

mencoder video.webm -ovc xvid -oac mp3lame -lameopts abr:br=128 -xvidencopts bitrate=1200 -o video.avi

genera un video con desincronización de sonido respecto al vídeo. y de una calidad baja, así que tendré que leer más sobre mencoder. Las aplicaciones gráficas generan órdenes de decenas o centenares de líneas, que exigen un conocimiento a alto nivel que no tengo.

Lo logrado por ahora genera un vídeo perfecto para lo que queremos y que podemos usar fácilmente en muchas circunstancias. El problema es, por ejemplo, si queremos introducirlo como tal dentro de una presentación, si vamos a usar un portatil desconocido sin conexión a Internet en aulas aisladas, conferencias donde no sabemos de que vamos a disponer etc... Para evitar esos problemas, es recomendable llevar varios formatos del vídeo en el bolsillo. Seguiremos indagando.

martes, 17 de abril de 2012

Conversion de vídeos

Estas últimas semanas estoy muy ocupado en la generación y conversión de vídeos científico-educativos. Para mostrar algunas de las acciones de un insecto sobre el ganado, hemos estado grabando vídeos con nuestras cámaras. Dispongo de vídeos de dos orígenes; los primeros se generaron con una cámara Olympus. El "fotógrafo" tenía marcada una calidad muy baja


y los resultados fueron "poco óptimos".
Por suerte, simultáneamente estaba otro "fotógrafo" sacando vídeos de lo mismo con una Lumix con una configuración de calidad muy alta, lo que supone vídeos mts de alta definición de estas características (como ya habíamos visto aquí)

$ ffmpeg -i 00020.mts

sale:
...
Stream #0.0[0x1011]: Video: h264, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 100 tbc
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s

Por supuesto, esto genera un problema para ser proyectados en una presentación de PowerPoint (sí, PowerPoint; no lo voy a presentar yo, que conste). Desde hace unos años he utilizado WinFF en la conversión de los vídeos, pero por alguna razón de librerías en mi ordenador principal me genera un error y no convierte. Siguiendo el orden de "calidad" señalado en un artículo de Ubuntu Users (Revista #6 Ubuntu en la nube) intenté entonces con Arista Transcoder; sin embargo, una vez instalado, no era capaz de iniciar un proyecto. El siguiente intento fue Transmageddon; de nuevo, por dependencias sobre librerías más modernas de las disponibles, me vi forzado a instalar la versión 0.16 (la 0.21 y 0.20 exigían librerías no disponibles en Fedora 64bits). Sin embargo, la transformación fue correcta y se obtuvo unos avis con una resolución idéntica al original y con buena calidad.


He generado también un VCD.


Como es natural, la transformación 1280x720 a 352x288 genera una alteración en la apariencia, así que tengo que "pulirlo" con algún crop lateral. Por supuesto, la intención será intentar mostrar los mts originales, pero como nunca se sabe de que ordenadores se dispone en los diferentes sitios y que codecs tienen instalados, lo mejor es siempre llevar todas las posibilidades, y el formato VCD (mpeg1) es un formato nativo en PowerPoint. No será la primera vez de que nos ha salvado en una conferencia llevar presentaciones en ppt, pptx, odp, pdf y vídeos de todo tipo de formatos. De hecho, para que no fallara nunca nada, antes siempre llevaba una instalación de Debian en un USB. Si fallaba Windows y Ubuntu o Fedora, siempre nos queda Debian, que aun no me ha fallado nunca. Si fuera una presentación personal mía, la haría algo más pública y colgaría la presentación en slideshare y los vídeos en Youtube.

martes, 17 de mayo de 2011

Compresión en flac

Debido a un vídeo que he visto en el blog de un amigo (Anecdotario Veterinario; perdona, pero no coincideremos nunca en el gusto musical) he recordado un disco que en sus tiempos me había costado mucho conseguir (Welcome to Pleasuredome - 1985 Frankie goes to Hollywood) y que, sorprendentemente, no lo tenía añadido a la colección digitalizada en el disco duro. Así que lo he pasado a flac sin perder más tiempo (estoy escuchando ahora mismo The Power of Love). La entrada se debe a que la compresión en flac ha llevado menos de 3 minutos. Si pensamos en el tiempo que nos llevaba hace 10 años pasar un CD a MP3 y lo comparamos con el estado actual, resulta prácticamente increíble. En "aquellos" tiempos no tan lejanos, preparabamos una fichero bat (MS-DOS, que le vamos a hacer) con una serie de ordenes para comprimir una serie de canciones que habíamos previamente pasado a wav y lo dejabamos en batch por la noche. Por aquel entonces usaba el ya obsoleto (o usando un anglicismo muy común hoy, deprecated) BladeEnc como encoder. Los ordenadores no eran lo suficientemente potentes y los encoders aun no estaban afinados, así que llevaba su tiempo. Luego cambié a la combinación EAC+Lame, lo que sumado a que dejé de usar una grabadora Philips 2x para extraer la música, hizo que mejorará mucho el MP3 que lograbamos. Primero, el lector Plextor SCSI, sumado al ripeo por EAC hizo que la extracción digital fuera perfecta. Segundo, Lame ya estaba mucho afinado y tenía más opciones (bitrate variable). Tercero, comprimíamos en 192 bprs (bits per second) variable, que no era lo mismo (en calidad de sonido logrado) que el 128 constante que hacíamos antes.
Sin embargo ahora uso un simple paquete sound-juicer en Ubuntu y comprimo a flac (free lossless audio codec - sin pérdida), que además es de código libre y sin problemas de patentes, como todo MP3, y en 2 minutos y 40 segundos tengo comprimido un disco de 70 minutos (velocidad 26x), en un directorio, con los títulos de las canciones perfectamente puestos. Más cómodo, imposible; y me ahorro tener que estirar el brazo y tener que sacar el CD.
Algunos dirán que el Monkey Audio Codec (mac, ficheros ape) logra un 5-7% más de compresión, pero es propietario, no tiene librerías para Linux; las hay, pero hasta donde yo sé no vienen de los generadores del código (yo uso un paquete deb de la versión 3.99 para poder convertirlos a flac con SoundKonverter, pero el último codec es el 4.10 de hace un mes). Por cuestión de filosofía GNU, no pienso usarlo.
Por cierto, me sigue gustando el CD, que estoy escuchando miestras escribo, sobre todo The Power of Love.