rtCamp / rtMedia

rtMedia (formerly Buddypress Media) adds advanced multimedia functionality to WordPress, BuddyPress and bbPress
https://rtmedia.io/
121 stars 111 forks source link

Adaptive bitrate and multiple format support #515

Open rahul286 opened 10 years ago

rahul286 commented 10 years ago

We currently encode all videos to 640:480 ref: https://github.com/rtCamp/media-node/blob/master/ffmpeg_server.js#L149

Media-node can support multiple file formats at multiple bitrates without any issue. Problem is with finding a player.

MediaElement.js supports only multiple file formats in video tag (example: Option B: Multiple codecs with Flash fallback - http://mediaelementjs.com/ )

Problem is working with different bitrates - https://github.com/sourcebits-harshitakasera/mediaelement-and-player-v2

This looks a solution - https://github.com/sourcebits-harshitakasera/mediaelement-and-player-v2

Some other references:

  1. http://en.wikipedia.org/wiki/Adaptive_bitrate_streaming
  2. http://www.longtailvideo.com/support/jw-player/29393/hls-adaptive-stream/
  3. http://css-tricks.com/video-source-by-screen-size/
  4. http://transitioning.to/2012/03/solving-html5-video-problems-with-adaptive-streaming/
  5. http://camendesign.com/code/video_for_everybody
rahul286 commented 10 years ago

https://github.com/Dash-Industry-Forum/dash.js https://github.com/arut/nginx-rtmp-module https://github.com/videojs/video.js

http://stackoverflow.com/questions/1070800/how-does-http-adaptive-bitrate-streaming-work-on-the-iphone

http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/

rahul286 commented 10 years ago

https://github.com/johnf/m3u8-segmenter says:

ffmpeg and libav have direct support for segmenting and creating m3u files

rahul286 commented 10 years ago

http://en.wikipedia.org/wiki/GStreamer

JanSichula commented 7 years ago

Hello,

I am presently working on a project where we need to publish videos in two resolutions for our church video archive (360p for users on cellphone networks with limited data plans and 720p for all the rest) . We do want to implement DASH at this phase as manual switching should perfectly cover our needs. Can you possibly advice me on some HTML5 OSS player that implements such a feature?

rahul286 commented 7 years ago

@JanSichula I am not aware of a player as we are yet to start work on this. But if you have come across some links, please share.

I believe an HTML5 player might have some JavaScript binding for the switch. When clicked JS will trigger some remote server call or change some player parameter to upgrade/downgrade video quality.

mangesh commented 7 years ago

@JanSichula If I understand your requirements correctly then the following link might be helpful to you, https://html5box.com/html5gallery/hdvideoplayer.php There is a demo given on the same page. If you are planning to implement the above player then please let me know how it works for you.

@rahul286 The above player is good for manual switching. We can make server calls as you said, for adaptive video quality switching. There's a provision for that as well.