Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Enable HLS passthrough to FFMPEG #1152

Merged
1 commit merged into from Aug 7, 2012

Conversation

Projects
None yet
4 participants
Contributor

micahg commented Jul 13, 2012

I've sightly modified spiff's work (originally found at https://github.com/cptspiff/xbmc/commit/27814f16d1612d2d267134d990e8da2e0f65278e) to pass all online m3u8 files to ffmpeg instead of trying to handle them with the local playlist factory.

FFMPEG can already play HLS streams. Services that use HLS are MLS Live, NHL Gamecenter, UFC.tv and probably many many more.

Contributor

micahg commented Jul 27, 2012

I have updated the branch to use the internet bandwidth setting to determine which bandwidth to play on.

@ghost

ghost commented Jul 28, 2012

thanks for sticking with me. scheduled for august

Contributor

micahg commented Jul 28, 2012

NP. I assume Aug is the review (not inclusion)?

@ghost

ghost commented Jul 28, 2012

review and hopefully merge during august window (1-10th).

Contributor

micahg commented Jul 28, 2012

OK, IDK what policy is about boost and using std::strings but I did it since it seemed the easiest way to parse the stream parameters. Anyway, I'll wait for the review.

Owner

tamland commented Jul 30, 2012

Are you handling absolute paths in the master m3u8?

Contributor

micahg commented Jul 30, 2012

No, and looking through the spec, I see that is something I overlooked -- I'll correct it this week.

Owner

tamland commented Jul 31, 2012

Thanks. Looking forward to this.

Contributor

micahg commented Aug 3, 2012

Hello,

I updated the code to use CURL to check to see if the sub-stream is a full path. I haven't been able to test this change on an m3u8 that uses full paths yet since I couldn't find any online. It does still work with the apple non-https samples and the other streams I've found.

This also has me thinking about if we need to worry about entries like ../whatever.m3u8. FFMPEG is a bit more fancy about this (see ff_make_absolute_url in libavformat/utils.c). That said, I've only ever seen that kind of notation used for local files on a unix style filesystem, so maybe it'd think it wont be a big deal for online m3u8 files.

Contributor

micahg commented Aug 5, 2012

OK, I've made those corrections -- looks much better, TY,

@ghost

ghost commented Aug 5, 2012

looks fine. now please fold (squash) the fixes into the original commit.

Contributor

micahg commented Aug 6, 2012

OK, I rebased and pushed. It is still showing two commits (one with all the changes and one with no changes [a merge of master]), so I'm not sure what happened there. But anyway, I think its set.

Owner

tamland commented Aug 6, 2012

First do
git pull --rebase upstream master
..then your two commits should be on top.
Squash them.
git push origin +master

Think this should work.

Contributor

micahg commented Aug 6, 2012

OK, I think I got it this time. All are down into a single commit. The problem seems to be resolved by using -f on the push so it doesn't prompt me to resync. Anyway, let me know if this is OK.

@ghost

ghost commented Aug 7, 2012

thanks for the patience and the contribution!

@ghost ghost pushed a commit that referenced this pull request Aug 7, 2012

Arne Morten Kvarving Merge pull request #1152 from micahg/master
Enable HLS passthrough to FFMPEG
8f043b4

@ghost ghost merged commit 8f043b4 into xbmc:master Aug 7, 2012

Contributor

micahg commented Aug 7, 2012

Awesome -- thanks for your patience too!

Is it possible for txbmc to use cache/buffer (like cachemembuffersize) when playing m3u8 files/playlists? when i play video from m3u8 n no cache is used (cache 0B 100% is displayed in the cideo information) and the video is choppy/stutters.

Log from playback: https://gist.github.com/4649698

If i download the video stream to a local webserver (with ffmpeg) and stream from that then the cache is used and it plays perfectly fine.

When I playback one of the segments in the m3u8 file it is cached/buffered and it plays perfectly (cache is used). Log from playing single segment segment:

20:03:53 T:2757493824 NOTICE: Thread CGUIDialogCache start, auto delete: true
20:03:53 T:3037683712 NOTICE: COMXPlayer: Opening: http://svtplay9q-f.akamaihd.net/i/world/open/20130125/1278818-005A/STJARNORNA_PA_S-005A-363fe074b865ae35_,900,348,564,1680,2800,.mp4.csmil/segment20_4_av.ts?null=&e=b2a7ace1bf661c32&id=

I use raspberry pi (raspbmc) with rc3 build of xbmc frodo.

Member

opdenkamp commented Jan 28, 2013

use the forums for help

@tru tru added a commit to RasPlex/plex-home-theatre that referenced this pull request May 8, 2014

@tru @LongChair tru + LongChair Only show the VideoOSD if we are in FullScreenVideo
Fixes #1152
9cc59af

@tru tru added a commit to RasPlex/plex-home-theatre that referenced this pull request May 8, 2014

@tru tru Only show the VideoOSD if we are in FullScreenVideo
Fixes #1152
0cdd839

@micahg micahg referenced this pull request in xbmc/xbmc-rbp Aug 27, 2012

Closed

Enable HLS passthrough to FFMPEG #5

This issue was closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment