{ "nodes": [{ "uri": "https:\/\/log.exos.ninja\/3K", "content": "# Comprimir todos los videos de un directorio sin perdida de calidad y multicore\r\n## Ideal para videos de c\u00e1maras digitales y dem\u00e1s.\r\n\r\nEstaba reduciendo un poco un directorio que tengo con varias fotos ya que me qued\u00e9 sin espacio en el backup, y se me ocurri\u00f3 comprimir los videos que ten\u00eda de las viejas y ya poco usadas c\u00e1maras digitales. Y es que no ten\u00edan los mejores m\u00e9todos de compresi\u00f3n. \r\n\r\nBuscando por ah\u00ed me tope con [este art\u00edculo](https:\/\/blog.nativehex.com\/comprimir-videos-sin-perder-calidad\/) en el que usa **FFMpeg** para dicha tarea.\r\n\r\nEl comando que us\u00e9 fue este en cuesti\u00f3n, usa ```xargs``` para usar todos los cores que tengo disponibles (si FFMpeg soporta multi-threading, pero depende de como este compilado, el codec, y otras yerbas).\r\n\r\n find . -type f -iname \"*.avi\" -print0 | xargs -0 -n1 -P 6 -I {} ffmpeg -i {} -c:v libxvid -c:a libmp3lame -b:v 5000k -b:a 320k \/ruta\/para\/archivos_comprimidos\/{}\r\n\r\nPaso a explicar las partes:\r\n\r\n* **find . -type f -iname \"*.avi\" -print0**: Busco todos los archivos que se llamen ```*.avi```, ```-print0``` hace que separe los nombres de archivo por *nullbyte*.\r\n* **xargs -0 -n1 -P 6 -I {}**...: Le paso uno por uno los archivos al comando, pero usando 6 forks en paralelo (mi numero de cores), e indicando que el nombre del archivo va a ser remplazado desde ```{}```\r\n* **ffmpeg -i {} -c:v libxvid -c:a libmp3lame -b:v 5000k -b:a 320k \/ruta\/para\/archivos_comprimidos\/{}**: El comando de ffmpeg en cuesti\u00f3n, para ver mas informaci\u00f3n sobre este les recomiendo leer el [art\u00edculo que encontr\u00e9](https:\/\/blog.nativehex.com\/comprimir-videos-sin-perder-calidad\/)\r\n\r\nEstoy casi seguro que les de tanto bitrate de video como de audio de sobra, y podr\u00eda haber optimizado mas el proceso, pero la verdad que el resultado me dej\u00f3 satisfecho, reduciendo unos 6GB en solo 2GB.", "created": "2016-11-04 06:40:20"}] }