{"id":23021640,"url":"https://github.com/raupulus/ffmpeg-slideshow-from-image-directory","last_synced_at":"2025-07-12T02:04:58.567Z","repository":{"id":192250066,"uuid":"686360324","full_name":"raupulus/ffmpeg-slideshow-from-image-directory","owner":"raupulus","description":null,"archived":false,"fork":false,"pushed_at":"2024-01-22T21:24:20.000Z","size":109626,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-08T09:29:25.624Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raupulus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-02T14:28:40.000Z","updated_at":"2023-09-03T18:24:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"a30b552e-c7c8-48a0-ab55-7f507736cd44","html_url":"https://github.com/raupulus/ffmpeg-slideshow-from-image-directory","commit_stats":null,"previous_names":["raupulus/ffmpeg-slideshow-from-image-directory"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raupulus%2Fffmpeg-slideshow-from-image-directory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raupulus%2Fffmpeg-slideshow-from-image-directory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raupulus%2Fffmpeg-slideshow-from-image-directory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raupulus%2Fffmpeg-slideshow-from-image-directory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raupulus","download_url":"https://codeload.github.com/raupulus/ffmpeg-slideshow-from-image-directory/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246871742,"owners_count":20847527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-15T12:18:46.435Z","updated_at":"2025-04-02T18:44:56.548Z","avatar_url":"https://github.com/raupulus.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ffmpeg-slideshow-from-image-directory\n\n## Descrición\n\nScript para crear vídeos de imágenes con ffmpeg incluyendo transiciones y música.\n\nEsta herramienta está enfocada para linux y macos.\n\n## Requisitos\n\nLa mayoría vienen por defecto en linux excepto ffmpeg, que se puede instalar con el gestor de paquetes de tu distribución. (sudo apt install ffmpeg)\n\nEn macos se puede instalar con brew, en este caso también es necesario instalar _coreutils_. (brew install coreutils ffmpeg)\n\n- ffmpeg\n- bash\n- find\n- bc\n- coreutils\n- sed\n- wc\n- grep\n- cut\n\n## Script Global (Opciones Linux/MacOS)\n\nPuedes enlazar el script a tu PATH para poder ejecutarlo desde cualquier directorio.\n\nTambié puedes crear un alias en tu .bashrc o .zshrc\n\n```bash\nalias imageToSlide=\"$HOME/git/ffmpeg-slideshow-from-image-directory/main.sh\"\n```\n\nSegún lo que necesites puedes elegir una de las opciones anteriores.\n\n## Música\n\nPuedes añadir música a los vídeos.\n\nPara tener música, crea un directorio en la raíz del proyecto llamado `music` y añade ahí los archivos de música.\n\nLos formatos admitidos son **mp3** **wav** y **ogg**.\n\nLa música será seleccionada de forma aleatoria para cada vídeo.\n\n## Uso\n\n```bash\nimageToSlide -p \u003cdirectorio de imágenes\u003e -o \u003cdirectorio de salida\u003e -n \u003cnombre de salida\u003e\n```\n\n### Ejemplo con x265\n\n```bash\nimageToSlide -p=example -n=nombre-final -f=30 -y -c=libx265\n```\n\n### Ejemplo en macos por hardware con x265\n\n```bash\nimageToSlide -p=example -n=nombre-final -f=30 -y -c=hevc_videotoolbox\n```\n\n### Ejemplo en macos por hardware con x264\n\n```bash\nimageToSlide -p=example -n=nombre-final -f=30 -y -c=h264_videotoolbox\n```\n\n## Metadatos de salida\n\nEstos metadatos se añaden en un archivo llamado igual que el vídeo pero con extensión `.txt`\n\nSi en el directorio de las imágenes hay un archivo llamado `info.txt` o `info.md` se añadirá al archivo de metadatos de salida.\n\nSi en el directorio para la música (music) hay un archivo llamado con el mismo nombre que la canción pero con extensión `.txt` se añadirá al archivo de metadatos de salida. Esto se hace para poder añadir información sobre la música como el autor o el título pero sobre todo para reconocer la autoría al subir el vídeo a cualquier plataforma.\n\nTambién se añadirán al final de este archivo todas las imágenes utilizadas, esto es por que al usar Stable Diffusion las imágenes pueden llevar en el nombre tanto el número como información de las palabras clave para generarla y así poder buscarlas en el directorio de imágenes o usarlo para generar otras en el futuro como para cubrir información si se sube el vídeo a una plataforma.\n\n## Procesado por lotes (Adicional Script)\n\nEl script **batch.sh** permite procesar todos los directorios de imágenes que contiene como primer nivel y crear los vídeos en el directorio de salida.\n\nEste script recibe dos parámetros obligatorios en orden:\n\n- Directorio que contiene los directorios de imágenes.\n- Directorio de salida para todos los vídeos.\n\n```bash\n./batch.sh \u003cdirectorio de imágenes\u003e \u003cdirectorio de salida\u003e\n```\n\nBásicamente lo que hace es ejecutar el script principal por cada directorio de imágenes que encuentre en el directorio de imágenes.\n\nEsto es útil para procesar por lotes todos los vídeos que tengas en un directorio fácilmente.\n\nSe ignorarán los directorios que no contengan imágenes y los directorios que contengan el archivo oculto **.processed**.\n\n## Ejemplo de salida\n\n```bash\n./batch.sh '/Users/fryntiz/Movies/Slides/galleries' '/Users/fryntiz/Movies/Slides/output'\n```\n\n## TODO\n\n- [ ] Mirar si es viable suavizar vídeo con denoise nlmeans\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraupulus%2Fffmpeg-slideshow-from-image-directory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraupulus%2Fffmpeg-slideshow-from-image-directory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraupulus%2Fffmpeg-slideshow-from-image-directory/lists"}