{"action":"created","issue":{"url":"https://api.github.com/repos/electron/libchromiumcontent/issues/198","repository_url":"https://api.github.com/repos/electron/libchromiumcontent","labels_url":"https://api.github.com/repos/electron/libchromiumcontent/issues/198/labels{/name}","comments_url":"https://api.github.com/repos/electron/libchromiumcontent/issues/198/comments","events_url":"https://api.github.com/repos/electron/libchromiumcontent/issues/198/events","html_url":"https://github.com/electron/libchromiumcontent/issues/198","id":148812213,"number":198,"title":"Building with an alternative libffmpeg","user":{"login":"dcposch","id":169280,"avatar_url":"https://avatars.githubusercontent.com/u/169280?v=3","gravatar_id":"","url":"https://api.github.com/users/dcposch","html_url":"https://github.com/dcposch","followers_url":"https://api.github.com/users/dcposch/followers","following_url":"https://api.github.com/users/dcposch/following{/other_user}","gists_url":"https://api.github.com/users/dcposch/gists{/gist_id}","starred_url":"https://api.github.com/users/dcposch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcposch/subscriptions","organizations_url":"https://api.github.com/users/dcposch/orgs","repos_url":"https://api.github.com/users/dcposch/repos","events_url":"https://api.github.com/users/dcposch/events{/privacy}","received_events_url":"https://api.github.com/users/dcposch/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2016-04-16T03:21:02Z","updated_at":"2016-04-16T13:51:44Z","closed_at":null,"body":"Since https://github.com/electron/electron/pull/4530, Electron is using libffmpeg as a shared library (so/dylib/dll).\r\n\r\nI'm trying to swap `libffmpeg.so` with one that supports a wider range of codecs, so that I can play back AC3 audio tracks from an Electron app.\r\n\r\n### Currently, the build process for this looks pretty involved\r\nAs far as I can tell, you have to modify four separate codebases:\r\n* **Custom build of electron.** Electron downloads `libchromiumcontent` from S3. You can specify your own download URL and a custom `LIBCHROMIUMCONTENT_COMMIT`\r\n* **Custom build of `libchromiumcontent`.** `libchromiumcontent` references the Chromium source tree at `https://chromium.googlesource.com/chromium/src.git`, as defined in `vendor/chromium/.gclient`. I guess you could replace this with your own fork of Chromium.\r\n* **Custom build of `chromium`**. Chromium references ffmpeg by once again referring to a git repo, which looks like it's cloned into `third_party/ffmpeg`. You can replace that with your own fork of ffmpeg.\r\n* **Custom build of `ffmpeg`** Finally, in your own fork of ffmpeg, you could add a new `ffmpeg_branding` value. The built-in values are Chrome, Chromium, ChromeOS, and ChromiumOS. I tried adding a fifth one I called CompleteCommonCodecs, which adds support for AC3.\r\n\r\n### Questions\r\n* **Is there an easier way to do this**, maybe using the `patches` folder here in `libchromiumcontent`?\r\n* Is it possible to do this without modifying `libchromiumcontent` at all, just swapping in a custom `libffmpeg.so` into the finished Electron build?\r\n* Has anyone else done this before?\r\n\r\n\r\n "},"comment":{"url":"https://api.github.com/repos/electron/libchromiumcontent/issues/comments/210820821","html_url":"https://github.com/electron/libchromiumcontent/issues/198#issuecomment-210820821","issue_url":"https://api.github.com/repos/electron/libchromiumcontent/issues/198","id":210820821,"user":{"login":"jaruba","id":1777923,"avatar_url":"https://avatars.githubusercontent.com/u/1777923?v=3","gravatar_id":"","url":"https://api.github.com/users/jaruba","html_url":"https://github.com/jaruba","followers_url":"https://api.github.com/users/jaruba/followers","following_url":"https://api.github.com/users/jaruba/following{/other_user}","gists_url":"https://api.github.com/users/jaruba/gists{/gist_id}","starred_url":"https://api.github.com/users/jaruba/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaruba/subscriptions","organizations_url":"https://api.github.com/users/jaruba/orgs","repos_url":"https://api.github.com/users/jaruba/repos","events_url":"https://api.github.com/users/jaruba/events{/privacy}","received_events_url":"https://api.github.com/users/jaruba/received_events","type":"User","site_admin":false},"created_at":"2016-04-16T13:51:44Z","updated_at":"2016-04-16T13:51:44Z","body":"I'm also pretty sure that no one is using a re-built Electron 0.37+ with extended ffmpeg support. Only the Butter guys are using NW.js with extended ffmpeg support if i'm not mistaken, but none do it with Electron atm."}}