marqueta.org

You can't always apt-get what you want</br> Infosec - Cycling - Estudiantes</br> RHCE / RHCSA</br> Once a sysadmin, always a sysadmin


iMovie se bloquea con los ficheros de la GoPro

Esto es una cosa que me puso de muy mala leche al principio. No es que yo sea muy hábil ni le dedique mucho tiempo a editar los videos de la GoPro, pero era prácticamente imposible. iMovie se quedaba constantemente frito.

Buscando posibles soluciones probé todo tipo de cosas absurdas como recrear las librerías, reinstalar iMovie y hasta ¡reinstalar macOS completo! Un sinsentido que, por supuesto, no solucionó el problema.

Al final la explicación era sencilla: la GoPro graba por defecto los videos con formato HEVC y el soporte de iMovie para dicho formato es bastante pobre (por no decir una puta mierda 👹).

Aunque creo que es posible configurar la GoPro para que almacene los videos en H.264, esto no es una solución pues:

  1. Te obligas a grabar los ficheros un un formato de peor calidad
  2. No soluciona el problema de los videos ya existentes

Por tanto hay que buscar una alternativa; QuickTime sí parece tener mejor soporte para HEVC, con lo que es posible abrir los ficheros en QuickTime y exportarlos uno por uno. ¿El problema? Que esto es un coñazo mayúsculo.

Hay una solución mejor y mucho más cómoda utilizando una herramienta que viene por defecto al menos con macOS Monterey, que es el que yo tengo: avconvert. Con este utilidad descargas los videos de la GoPro, tiras un comando, te vas a tomar café y, cuando acabes, los ficheros están convertidos.

Ejemplo:

cd /path/to/videos
for i in $(ls *MP4)
do
    echo $i
    avconvert -p Preset1280x720 --source "${i}" --output "${i}".MOV
done

Se crearán ficheros con extensión .MOV añadida al nombre actual (es decir, GH010459.MP4 se convierte en GH010459.MP4.MOV). Estos ficheros se pueden importar en la librería de iMovie y trabajar con ellos sin riesgo de que se quede tostado.

Apple, espabila.

Nota: para evitar el clásico problema de los ficheros con espacios en el nombre basta con, por ejemplo, añadir IFS=$(echo -en "\n\b") por delante del comando anterior.