{"action":"created","issue":{"url":"https://api.github.com/repos/transitive-bullshit/ffmpeg-concat/issues/23","repository_url":"https://api.github.com/repos/transitive-bullshit/ffmpeg-concat","labels_url":"https://api.github.com/repos/transitive-bullshit/ffmpeg-concat/issues/23/labels{/name}","comments_url":"https://api.github.com/repos/transitive-bullshit/ffmpeg-concat/issues/23/comments","events_url":"https://api.github.com/repos/transitive-bullshit/ffmpeg-concat/issues/23/events","html_url":"https://github.com/transitive-bullshit/ffmpeg-concat/pull/23","id":337205368,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk4NDcxMDI0","number":23,"title":"optimize temp frame creation and transcoding","user":{"login":"transitive-bullshit","id":552829,"node_id":"MDQ6VXNlcjU1MjgyOQ==","avatar_url":"https://avatars0.githubusercontent.com/u/552829?v=4","gravatar_id":"","url":"https://api.github.com/users/transitive-bullshit","html_url":"https://github.com/transitive-bullshit","followers_url":"https://api.github.com/users/transitive-bullshit/followers","following_url":"https://api.github.com/users/transitive-bullshit/following{/other_user}","gists_url":"https://api.github.com/users/transitive-bullshit/gists{/gist_id}","starred_url":"https://api.github.com/users/transitive-bullshit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/transitive-bullshit/subscriptions","organizations_url":"https://api.github.com/users/transitive-bullshit/orgs","repos_url":"https://api.github.com/users/transitive-bullshit/repos","events_url":"https://api.github.com/users/transitive-bullshit/events{/privacy}","received_events_url":"https://api.github.com/users/transitive-bullshit/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-06-30T10:41:18Z","updated_at":"2018-08-02T17:53:46Z","closed_at":null,"author_association":"OWNER","pull_request":{"url":"https://api.github.com/repos/transitive-bullshit/ffmpeg-concat/pulls/23","html_url":"https://github.com/transitive-bullshit/ffmpeg-concat/pull/23","diff_url":"https://github.com/transitive-bullshit/ffmpeg-concat/pull/23.diff","patch_url":"https://github.com/transitive-bullshit/ffmpeg-concat/pull/23.patch"},"body":"This PR implements the approach discussed in #8, namely it makes a tradeoff between compute time versus temp storage requirements that should make the program more robust for larger input videos.\r\n\r\nPreviously, we first extracted all frames from each input video, then rendered the transitions where appropriate, then did a final transcoding pass that was very efficient since it only had one input source as a single stream of frames.\r\n\r\nNow, we only extract frames from input videos that are actually used in the transitions, which for larger input videos can be a significant reduction in temp frames extracted. This has the disadvantage, however, that the final transcoding phase is more complex and involves O(n) inputs instead of O(1) inputs.\r\n\r\nIf we decide to merge this approach, it will necessitate a major version bump to `v2.0.0`.\r\n\r\nI would like to gather some performance numbers for speed and memory usage before committing to this approach.  In my very preliminary tests, the speed has remained approximately the same with a significant reduction in temporary disk and memory usage, though I'm guessing that we should expect speed improvements from longer / larger input videos.\r\n\r\n@BrandonCookeDev, @daniel-habib, I'm guessing these changes will interest you.  Thoughts & feedback are more than welcome."},"comment":{"url":"https://api.github.com/repos/transitive-bullshit/ffmpeg-concat/issues/comments/410013409","html_url":"https://github.com/transitive-bullshit/ffmpeg-concat/pull/23#issuecomment-410013409","issue_url":"https://api.github.com/repos/transitive-bullshit/ffmpeg-concat/issues/23","id":410013409,"node_id":"MDEyOklzc3VlQ29tbWVudDQxMDAxMzQwOQ==","user":{"login":"XavierTS","id":4550528,"node_id":"MDQ6VXNlcjQ1NTA1Mjg=","avatar_url":"https://avatars3.githubusercontent.com/u/4550528?v=4","gravatar_id":"","url":"https://api.github.com/users/XavierTS","html_url":"https://github.com/XavierTS","followers_url":"https://api.github.com/users/XavierTS/followers","following_url":"https://api.github.com/users/XavierTS/following{/other_user}","gists_url":"https://api.github.com/users/XavierTS/gists{/gist_id}","starred_url":"https://api.github.com/users/XavierTS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/XavierTS/subscriptions","organizations_url":"https://api.github.com/users/XavierTS/orgs","repos_url":"https://api.github.com/users/XavierTS/repos","events_url":"https://api.github.com/users/XavierTS/events{/privacy}","received_events_url":"https://api.github.com/users/XavierTS/received_events","type":"User","site_admin":false},"created_at":"2018-08-02T17:53:46Z","updated_at":"2018-08-02T17:53:46Z","author_association":"NONE","body":"@transitive-bullshit Any plans on merging this PR soon?"}}
{"actor":{"display_login":"XavierTS"}}