polybiusproxy / hxCodec

Haxe library for native video playback on HaxeFlixel and OpenFL.
https://lib.haxe.org/p/hxCodec
Mozilla Public License 2.0
110 stars 72 forks source link

Enable playback of video from bytes #267

Open EliteMasterEric opened 1 year ago

EliteMasterEric commented 1 year ago

It would be useful to be able to take a video file as bytes, and play them back in hxCodec as a video, without having to have the video on the disk, or have the video on a remote server.

The public interface on the video handler for this functionality would look something like this:

public function playVideoFromBytes(videoData:haxe.io.Bytes, shouldLoop:Bool = false);

This could be implemented using the following function: https://videolan.videolan.me/vlc/group__libvlc__media.html#ga591c3cbe56444f1949165b2b9b75d8e2

LIBVLC_API libvlc_media_t* libvlc_media_new_callbacks (libvlc_instance_t * instance, libvlc_media_open_cb open_cb, libvlc_media_read_cb read_cb, libvlc_media_seek_cb seek_cb, libvlc_media_close_cb close_cb, void * opaque);

This allows defining your own functions for opening, reading, seeking (fast-forwarding or rewinding) and closing a media file. We just need to incorporate these with Haxe code to access a byte array.

JonnycatMeow commented 1 year ago

this whould be useful but then agian it requires libvlc 4.0.0 and i don't think the libs work for mac

EliteMasterEric commented 1 year ago

this whould be useful but then agian it requires libvlc 4.0.0 and i don't think the libs work for mac

libvlc_media_new_callbacks was added in libvlc 3.0

JonnycatMeow commented 1 year ago

oh ok