2015-03-25, 05:19
Hey guys,
So since my actual proposal has changed quite a bit from the proposal on the first post of this thread, I thought i'd post a more updated version here
Right now I am working on the actual proposal that I will be submitting to the GSOC site which i will upload in a few hours(have to go to campus for a bit). I am currently working on the timeline section and while i have a basic idea of how to apportion the the time available (5 weeks for transcoding, 2 weeks for webserver and JSON extension, 3 weeks for Kore extension and 2 weeks buffer for in case i am unable to meet the above deadlines), I could really use you guys' help with this
As always, any other advice/suggestions are greatly appreciated
So since my actual proposal has changed quite a bit from the proposal on the first post of this thread, I thought i'd post a more updated version here
Quote:Name: Prabashwara Seneviratne
Forum/e-mail: [email protected]
Name: Transcoding support in Kodi and Playback support in Kore
Summary: Transcoding is one of the most requested features for Kodi and my aim is to implement transcoding in Kodi. The ideal end result would be to have transcoding support in Kodi's UPnP server so that it would allow UPnP Renderers to stream any kind of media from Kodi despite only supporting a few specific types. However, as per feedback of the developers on the forum, implementing transcoding within the UPnP Server (Which uses platinum SDK) and supporting various mime types that varies from device types to manufacturers, would be too complex and beyond the time frame given for this project. So, with this feedback in mind, my idea is to implement transcoding support in Kodi which is be triggered using the JSON RPC API, to set up a media stream using Kodi's built-in webserver. Moreover, I am also going to add playback support to Kore remote app, which leverage the new transcoding functionality (in this case for a fixed set of profiles (i.e 480p, 720p, 1080p)) so that users will experience the benefits of this project more readily.
How will I achieve this: I will create a "transcoder" program that uses ffmpeg's libav libraries that accepts a file and the output media profile as parameters. This will also involve modifying Kodi's webserver to support redistributing streams (similar to ffserver). Then i will extend the JSON RPC API by either adding a new namespace for transcoding or extending the existing "Files" to support sending arguments to the "transcoder" and then reply with the stream address.Finally, i will implement playback support in Kore, that provides the user with a player interface, the ability to swap between controlling kodi or playback on the local device and the ability to set from a few preset media profiles to stream.
What will the project focus on: This project will focus mainly on adding transcoding support to Kodi via a "transcoder" program, extending the JSON RPC API to send commands to the "transcoder" and adding playback/streaming support to Kore.
Benefits: This project will benefit both developers and users alike. Developers will be able to use the transcoding functionality to add more functionality to their external applications (eg: remotes) and also use it in the future to implement transcoding within the UPnP server. Users will benefit by being able to stream media directly to their smartphones via the remote app which is a very convenient feature. Moreover if they are streaming their media collection over the internet, due to multi profile support, they will be able to save bandwidth or improve viewing conditions due to connection speeds.
Goals: Be familiar with ffmpeg libraries and the Kodi source before the project starts. Also design the UI changes for Kore before project start so that it can be approved.
Develop transcoder program
Extend webserver to support streaming
Extend JSON RPC API to support setting up trancoded streams
Extend Kore to support streaming and playback.
What does it touch in Kodi: Webserver and JSON RPC API sections of Kodi
Requirements: C++, ffmpeg, JSON RPC API, Android
Right now I am working on the actual proposal that I will be submitting to the GSOC site which i will upload in a few hours(have to go to campus for a bit). I am currently working on the timeline section and while i have a basic idea of how to apportion the the time available (5 weeks for transcoding, 2 weeks for webserver and JSON extension, 3 weeks for Kore extension and 2 weeks buffer for in case i am unable to meet the above deadlines), I could really use you guys' help with this
As always, any other advice/suggestions are greatly appreciated