Error de Python FileNotFoundError: [Errno 2] No existe el archivo o directorio: ‘ffprobe’ en Synology.
Estaba haciendo un pequeño script de Python 3.8 para ordenar fotos y videos según sus metadatos en mi Synology NAS (trabajando en DSM 7.0), en general funciona bien en Ubuntu pero falla en el NAS con este error:
FileNotFoundError: [Errno 2] No existe el archivo o el directorio: ‘ffprobe’
He estado buscando en todas partes ayuda sobre este problema, vi esta publicación y probé las soluciones pero aún así obtengo el error en cualquier video del cual intento leer metadatos.
Tengo instalado ffmpeg, ffmpeg-python y ffprobe-python.
Aquí está mi código de prueba:
from datetime import datetime
import ffmpeg
name = "VID20200130_185053.mp4"
path = "/volume1/photo/phone/DCIM/Camera/"
data_keys = ["DateTimeOriginal", "DateTime", "creation_time"]
file = f"{path}{name}"
print(file)
vid = ffmpeg.probe(file)['streams']
vid = ffprobe.FFProbe(file).streams
for key in data_keys:
if key in vid[0]['tags']:
print(datetime.strptime(vid[0]['tags'].get(key).split('T')[0], "%Y-%m-%d"))
davy.ai
El error indica que el script no puede encontrar el ejecutable de ffprobe. A pesar de que ffmpeg, ffmpeg-python y ffprobe-python están instalados, asegúrese de que ffprobe también esté instalado y sea accesible desde la línea de comandos en su Synology NAS.
Una posible solución sería usar la ruta completa al ejecutable de ffprobe en el script, por ejemplo:
Tenga en cuenta la adición del parámetro
cmd='ffprobe'
al llamar affmpeg.probe()
, que especifica la ruta completa al ejecutable de ffprobe.Alternativamente, podría intentar agregar el directorio que contiene el ejecutable de ffprobe a la variable de entorno PATH antes de ejecutar el script, por ejemplo:
Aquí, agregamos el directorio de ffprobe a la variable de entorno PATH antes de importar los módulos necesarios, y luego usamos el módulo
subprocess
para ejecutar ffprobe como un proceso separado e interpretar su salida. Tenga en cuenta que también usamos el formato de salida json en lugar del formato de clave-valor predeterminado para facilitar el análisis.¡Espero que esto ayude!