Skip to content

Ffmpeg to Canvas and Web Audio media playback for Node WebKit.

License

Notifications You must be signed in to change notification settings

xdenser/nw-f2cwa-play

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nw-f2cwa-play

Ffmpeg to Canvas and Web Audio media playback for Node WebKit.

You will need ffmpeg to run this.

Install with npm install nw-f2cwa-play

Module includes precompiled versions of binary memcpy module. Binary memcpy gives great performance boost alowing to play 1080p@60Hz movies. Have not tried 4K.

nw-f2cwa-play will try to load precompiled binary for your combination of version/platform/architecture. following combinations are supported: NW 0.7.5,0.8.4,0.8.6,0.9.2,0.10.0-rc1,0.10.2 for Linux 32/64, Windows 32

I have no OSX machine to prebuild OSX versions and include them in npm module. Contributors are welcome. Here is simple instructions to build for OSX.

nw-f2cwa-play will use pure JS less performant fallback if binary memcpy not available you may build memcpy module for your Node-Webkit version with nw-gyp see Node Webkit WiKi article.

Under Windows place ffmpeg.exe into vendor directory or on any platform pass ffmpeg path to player as option.

var
  Player = require('nw-f2cwa-play').Player,
  player;

player = new Player({
  selector:'#cnv', // selector for canvas to render video
  ffmpegPath: 'ffmpeg' // in case ffmpeg is available on standard path
});

player.openSrc('udp://@239.0.1.2:1234'); // pass stream url (rtp, udp, http ... anything supported by ffmpeg) or file path

// auto start playback
player.on('canplay',function(){
          player.play();
})

player.on('time',function(time){
  // time is current stream time in seconds
});

Seeking for streams allowing seeking (mostly files) is also supported:

  1. Use player.openSrc(url,startPos); to start playback from needed pos. startPos expressed in seconds.
  2. Use player.seek(seekPos); seekPos is also expressed in seconds.

See sample App.

This is experiment as for now. May produce unexpected results. Only files/streams with audio are supported, audio is also downsampled to mono for simpler processing.

About

Ffmpeg to Canvas and Web Audio media playback for Node WebKit.

Resources

License

Stars

Watchers

Forks

Packages

No packages published