hevcbatchconverter es una herramienta exclusivamente para MacOS desarrollada en Python3, que se apoya en las librerías ffmpeg para convertir videos al formato HEVC. El formato HEVC es el que mejor se conporta con la aplicación Fotos en iCloud y soluciona ciertos problemas con la visualizacion de miniaturas de videos antiguos subidos a icloud.
Para la conversion, se requiere del fichero XMP que genera la aplicacion 'Fotos' en el momento de exportar un fichero en su formato original. Para ello, seleccionamos la opción 'Exportar IPTC como XMP' al exportar los videos problemáticos.
Ejemplo de uso:
$hevcbatchconverter -p /tmp/videofiles # Generar un directorio output con ficheros mp4 convertidos con ffmpeg
El 'Layout' del proyecto, las recomendaciones de empaquetado y su distribución, han sido implementadas apoyándonos en en la documentación obtenida de "The Hitchhiker’s Guide to Packaging" y de "kennethreitz.org Report abuse"
Si lo que pretendes es simplemente descargar e instalar la herramienta para su uso, salta directamente a la sección Instalación de la herramienta. Si en cambio, tu intención es extender la herramienta, sigue los pasos documentados a continuación.
Esta documentación, esta orientada a desarrolladores que quieran extender la herramienta y que utilicen como plataforma de desarrollo 'Ubuntu' y desarrollen sobre un entorno virtual generado con virtualenv
En cualquier caso, para otros sistemas operativos, existen tutoriales análogos que nos permitirán desarrollar sobre el proyecto sin muchos problemas.
- ffmepg como herramienta de conversion
$brew install ffmpeg
- python3, como lenguaje de desarrollo
$sudo apt install python3
- pip3, como administrador de paquetes python
$sudo apt install python3-pip
- virtualenv, nos permite aislar nuestro entorno de desarrollo en Python y sus dependencias. Para su instalación ejecutamos:
$sudo apt install python3-venv
- Ubuntu 18 o superior
- Visual Studio Code
- Clonar el proyecto en un directorio en local
$git clone [email protected]:rvillamil/hevc-video-batch-converter.git
- Crear el entorno virtual con virtualenv. El entorno, lo podemos generar donde creamos conveniente, aunque una buena opción es dentro del propio proyecto de la siguiente forma:
$python3 -m venv .venv
- Activación del entorno virtual
$source .venv/bin/activate
- Para desactivar un entorno virtual, porque se necesita trabajar en otro diferente, se ejecuta el comando deactivate de virtualenv. No es necesario ir al directorio del entorno virtual para realizar esta operación:
$deactivate
- Para la instalación de las dependencias para el desarrollo del proyecto, se ejecuta, dentro del entorno virtual, el comando:
$python setup.py develop
Se utiliza el soporte de pytest para lanzar las pruebas.
- Dentro del entorno virtual, en la raíz del directorio del proyecto ejecutamos:
$python -m pip install -U pytest
- Ahora, previa Configuración de la herramienta, podrás correr las pruebas unitarios,con el comando:
$pytest
Otra opción sería ejecutarlas con la herramienta de setup de la siguiente forma:
$python setup.py pytest
Como recomendación, puedes instalar dentro del entorno virtual, las siguientes herramientas:
- Como 'Linter' usaremos flake8
$python -m pip install -U flake8
- Como "formateador" usaremos autopep8
$python -m pip install -U autopep8
Antes de generar una release, deberías de:
-
Actualizar el fichero CHANGELOG.md con el contenido de la release asociado a una version
-
Generar la el fichero 'tgz' con la release:
$python setup.py sdist
Esto creará un subdirectorio dist dentro del proyecto con un fichero en formato .tgz listo para su distribución e instalación.
-
Subir los cambios anteriores a la rama 'develop'
-
"Mergear" 'Develop' a 'Master' desde el interface de GitLab
-
Crear un tag con la 'release' y adjuntar el artefacto al tag como parte de la documentación
-
Finalmente, actualizar el fichero con la versión del proyecto __version__py, siguiendo las normas de SemVer
Si eres un desarrollador y te has descargado el código fuente y configurado el entorno de desarrollo como se explicar al comienzo de la guía, se trataría de lanzar desde fuera del entorno virtual el comando de instalación de la herramienta:
$pip3 install -e . --user # --user , indica que se lo debe instalar solo para el usuario activo. Si se omite el parámetro se instalaría para todos los usuarios
Si eres un usuario y te has descargado una 'Release', el procedimiento sería:
- Instalar python3 y el gestor de paquetes pip3 si no lo has hecho ya
$sudo apt install python3 python3-pip
- Descomprimir el fichero de la siguiente forma:
$tar xvf hevcbatchconverter-*.tar.gz
- Dentro del directorio del proyecto, ejecutar el comando:
$pip3 install -e . --user # --user , indica que se lo debe instalar solo para el usuario activo. Si se omite el parámetro se instalaría para todos los usuarios
Lanzar desde una terminal
$pip3 uninstall hevcbatchconverter
Una configuración recomendada para Visual Studio Code podría establecerse en el settings.json del proyecto.
{
"python.pythonPath": ".venv/bin/python",
"python.testing.pyTestArgs": [
"tests"
],
"python.testing.unittestEnabled": false,
"python.testing.nosetestsEnabled": false,
"python.testing.pyTestEnabled": true,
"python.linting.flake8Enabled": true,
"python.linting.enabled": true,
"python.formatting.provider": "autopep8"
}
Este proyecto está licenciado bajo la licencia de MIT. Ver el fichero LICENSE para mas detalles.