{"id":15022039,"url":"https://github.com/nodef/extra-stillvideo","last_synced_at":"2026-01-05T03:44:06.420Z","repository":{"id":90491463,"uuid":"156991598","full_name":"nodef/extra-stillvideo","owner":"nodef","description":"Generate still video from an audio and image file, through machine (via \"ffmpeg\").","archived":false,"fork":false,"pushed_at":"2020-07-30T03:11:57.000Z","size":176,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-27T21:38:46.831Z","etag":null,"topics":["audio","cli","console","extra","ffmpeg","image","machine","shell","still","stillvideo","video"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/extra-stillvideo","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nodef.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":"2018-11-10T15:01:45.000Z","updated_at":"2022-04-12T17:47:19.000Z","dependencies_parsed_at":"2023-05-29T10:30:36.597Z","dependency_job_id":null,"html_url":"https://github.com/nodef/extra-stillvideo","commit_stats":{"total_commits":37,"total_committers":2,"mean_commits":18.5,"dds":"0.027027027027026973","last_synced_commit":"764d33167b510d3ccee61b5d67553732be691ffb"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodef%2Fextra-stillvideo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodef%2Fextra-stillvideo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodef%2Fextra-stillvideo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodef%2Fextra-stillvideo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nodef","download_url":"https://codeload.github.com/nodef/extra-stillvideo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244918710,"owners_count":20531686,"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":["audio","cli","console","extra","ffmpeg","image","machine","shell","still","stillvideo","video"],"created_at":"2024-09-24T19:57:22.068Z","updated_at":"2026-01-05T03:44:06.414Z","avatar_url":"https://github.com/nodef.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Generate still video from an audio and image file, through machine (via [\"ffmpeg\"]).\n\u003e Do you want to:\n\u003e - Upload music videos on YouTube?\n\u003e - Or, [Upload Wikipedia TTS videos on YouTube]?\n\nSample: [\"Pixelsphere OST (2017)\"].\n\u003cbr\u003e\n\n\n## setup\n\n1. Install [Node.js], if not installed.\n2. Run `npm install -g extra-stillvideo` in [console].\n3. To install this as a package use `npm install extra-stillvideo`.\n\u003cbr\u003e\n\n\n## console\n\n```bash\nstillvideo -a bomberman.m4a -i bomberman.png\n# out.mp4 created (yay!)\n\nstillvideo -a speech.mp3 -i photo.jpg -o speech.mp4\n# speech.mp4 created from audio speech.mp3, image photo.jpg\n```\n\n### reference\n\n```bash\nstillvideo [options]\n# --help:    show this help\n# -l, --log: enable log\n# -o, --output: set output video file (out.mp4)\n# -a, --audio:  set input audio file\n# -i, --image:  set input image file\n# -ol, --loop:      set loop (1)\n# -of, --framerate: set framerate (1)\n# -ov, --vcodec:    set vcodec (libx264)\n# -oc, --crf:       set CRF (0)\n# -op, --preset:    set preset (veryfast)\n# -ot, --tune:      set tune (stillimage)\n# -oa, --acodec:    set acodec (copy)\n# -rx, --resizex:   set image resize-x\n# -ry, --resizey:   set image resize-y\n# -fx, --fitx:      set image fit-x\n# -fy, --fity:      set image fit-y\n\n# Environment variables:\n$STILLVIDEO_LOG # enable log (0)\n$STILLVIDEO_OUTPUT # set output video file (out.mp4)\n$STILLVIDEO_AUDIO  # set input audio file\n$STILLVIDEO_IMAGE  # set input image file\n$STILLVIDEO_LOOP      # set video loop (1)\n$STILLVIDEO_FRAMERATE # set video framerate (1)\n$STILLVIDEO_VCODEC    # set video vcodec (libx264)\n$STILLVIDEO_CRF       # set video CRF (0)\n$STILLVIDEO_PRESET    # set video preset (veryfast)\n$STILLVIDEO_TUNE      # set video tune (stillimage)\n$STILLVIDEO_ACODEC    # set video acodec (copy)\n$STILLVIDEO_RESIZEX   # set image resize-x\n$STILLVIDEO_RESIZEY   # set image resize-y\n$STILLVIDEO_FITX      # set image fit-x\n$STILLVIDEO_FITY      # set image fit-y\n```\n\u003cbr\u003e\n\n\n## package\n\n```javascript\nconst stillvideo = require('extra-stillvideo');\n\nawait stillvideo('out.mp4', 'bomberman.m4a', 'bomberman.png');\n// out.mp4 created (yay!)\n\nawait stillvideo('speech.mp4', 'speech.mp3', 'photo.jpg');\n// speech.mp4 created from audio speech.mp3, image photo.jpg\n```\n\n```javascript\nconst stillvideo = require('extra-stillvideo');\n\nstillvideo(output, audio, image, options={})\n// output:  output video file\n// audio:   input audio file\n// image:   input image file\n// options: given below\n// -\u003e Promise \u003coutput\u003e\n\n// Default options\noptions = {\n  stdio: [0, 1, 2],   // set child process stdio\n  log: false,         // enable log\n  loop: 1,            // set loop\n  framerate: 1,       // set framerate\n  vcodec: 'libx264',  // set vcodec\n  crf: 0,             // set CRF\n  preset: 'veryfast', // set preset\n  tune: 'stillimage', // set tune\n  acodec: 'copy',     // set acodec\n  resizeX: 0,         // set image resize-x\n  resizeY: 0,         // set image resize-y\n  fitX: 0,            // set image fit-x\n  fitY: 0             // set image fit-y\n}\n```\n\u003cbr\u003e\n\n\n## similar\n\nDo you need anything similar?\n- [extra-googletts] can generate spoken audio from text.\n- [extra-youtubeuploader] can upload videos with caption to YouTube.\n\nSuggestions are welcome. Please [create an issue].\n\u003cbr\u003e\u003cbr\u003e\n\n\n[![nodef](https://i.imgur.com/33z4S5l.jpg)](https://nodef.github.io)\n\n[\"ffmpeg\"]: https://ffmpeg.org/\n[Upload Wikipedia TTS videos on YouTube]: https://www.youtube.com/results?search_query=wikipedia+audio+article\n[\"Pixelsphere OST (2017)\"]: https://www.youtube.com/watch?v=RCryNyHbSDc\u0026list=PLNEveYilIj1AV5-ETDCHufWazEHRcP8o-\n\n![](https://ga-beacon.deno.dev/G-RC63DPBH3P:SH3Eq-NoQ9mwgYeHWxu7cw/github.com/nodef/extra-stillvideo)\n\n[extra-googletts]: https://www.npmjs.com/package/extra-googletts\n[extra-youtubeuploader]: https://www.npmjs.com/package/extra-youtubeuploader\n[create an issue]: https://github.com/nodef/extra-stillvideo/issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnodef%2Fextra-stillvideo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnodef%2Fextra-stillvideo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnodef%2Fextra-stillvideo/lists"}