XBMC is the leading user application in the convergence between music, video, the internet and home entertainment. Starting out on the Xbox platform, XBMC has since been ported to the Linux, Mac OSX and Windows platforms.
As we know, H.264 is a high efficient encode method, which is much better than MPEG2. Its rate is relative low which can be lower than several hundred Kbps. So H.264 is specially suitable for streaming media transporting in Peer-to-Peer method over the Internet, which always has relative low bandwidth for multimedia transfering.
In my development of a Multimedia live broadcast system over the Internet, I choose to use FFMPEG to be my decoder to decode H.264 multimedia streaming at client side. But I found that FFMPEG can't work properly to decode H.264 network streaming, while it can decode local multimedia file encoded in H.264 way.
So I guess there may be some different between H.264 local file and H.264 Network streaming.The differnces may be the encode format or file header,or something others.In my GSoc,I will try my best to improve FFMPEG H.264 model to make it support for Network streaming media,which is called H264 NetCodec.Also I will provide APIs for further development.More detailed information will be discussed in Detailed Description.
Make streaming media encoded in H.264 format could be decoded by FFMPEG in Client side.
How does my project benefit XBMC and community:
My project will help XBMC enlarge its function for the capacity of decode H.264 Video transported throught Internet.Since P2P network live streaming media playback is popular nowadays, we can shift XBMC to network streaming media domain, by which I think can enhance the popularity of XBMC.
Project Tasks and Deliverables:
To being about H.264 network streaming being able to be decoded features in XBMC requires three general tasks:
1.Research H.264 standard to see whether there are some difference in Format between H.264 Local file and Network streaming,Since local H.264 file can be play back normally while H.264 network streaming can't.
2.Look through code of FFMPEG H.264 Model and change the necessary code to relize the future.
3.Provide APIs for future users to enhance the function of H.264 decoding.
This is an aproximate roadmap of the tasks to do.
1.Publish my goals to the XBMC community and try to get some feedback and suggestions on my plans. I will get familiar with the specific XBMC internals that I require for my work. (until mid of June)
2.Implement features in the order they are specified above. That means that I will begin with the survey of H.264 and then begin changing code of FFMPEG to implement the function I mentioned above.(until beginning or mid of August)
3.Testing of all features with the help of the XBMC community. This will begin as soon as one component is finished and should be completed by the end of August.
I am a Ph.D candidate in China Academy of Science and my major is signal and information processing.Now I live in BeiJing.
I've a strong affinity for XBMC and open source software in general, a proud advocate for the movement and it's values. I see myself having more and more of an involvement in the open source/free software community as my programming ability grows. I also hope to become permanently involved in the development of XBMC, partly to satisfy my own wants from a home entertainment system and also as I value the work done already and wish to contribute to the project's legacy. I'm committed, hard-working and would relish the opportunity to work with and learn from professional programmers. Outside of computers, I have hobbies that I like to turn to now and again: cycling and playing basket ball.
My GSoC2008 Idea of H264 NetCodec:Make codec support decoding H.264 encoded Media str
Joined: Mar 2008
2008-04-17 11:05 Post: #1
Joined: Mar 2004
2008-04-17 14:07 Post: #2
I already said it once. This makes little sence. h264 is streamed over several protocols. udp/rtp/http with some session handler like rtps or just wrapped in a container like mpegts/mkv... there is no special network version of h264. There is special ways of containing h264 in rtp, and i suspect the ffmpeg rtp demuxer isn't the best on the planet.
If you instead say you wish to work on improving the rtsp/rtp client of xbmc, that is more direct reasonable idea. (thou it clashes with the project that want's to implement libnemesi support in xbmc). The current client uses ffmpeg's rtp/rtsp client, and sure that could need some work. I don't mind you working on that at all, and we can help reviewing the patches, but ultimatly the stuff must go to mplayerhq.hu for complete review.
You need to specify what it is you wish to work on. :/
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.