-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Custom player support #17
Comments
Personally I would recommend using an existing library for demuxing rather than trying to reinvent a rather complex wheel. If its license works for you, libavformat from FFMPEG is fairly simple and versatile, has many years of work behind it, and is cross-platform. I'm going to close this as it isn't an issue with Hap, but would love to hear if you madly decide to go ahead. |
For a custom player reading HAP on desktop you can use Resolume Alley. Would you precise the features you need, for example random access to frames, isn't there a way to use the faststart of .MOV to have a table of frames at the beginning of the file, so you can seek which frame you want in the file ? For low memory footprint how do you want to achieve that ? Good idea for multiple streams in a video, should be doable inside the .MOV container, no ? |
Check out the HAP video website for a list of supported applications: In particular you are looking for alternatives to QuickTime for transcoding, check out this page: |
I'm interested in the possibility of developing a lightweight player library based on Hap, aimed at high-performance cross-platform applications. Many of the goals are the same as mentioned in #16, but go a bit further. Typical media libraries (QT, AVFoundation, DirectShow, libavcodec) are difficult to integrate with, have a lot of dependencies and limitations, and fall down when you try to do much more than just watch one video straight through.
I'm curious about writing an extremely stripped down player library that only reads Hap encoded frames from a simple, common container format like MPEG or maybe OGG. With FFMPEG's Hap encoding support, the main requirements of a container would be that it is easy to parse, and that FFMPEG can write to it. The library itself should have minimal dependencies, compile on most platforms that support C++11, and be extremely easy to integrate into C++/OpenGL projects.
Writing this from scratch, while possibly hubristic, would not only allow easier cross-platform support, but could also open the door to features that are in line with the original goals of Hap. Specifically, for my purposes, things like: reliable, accurate, performant random frame access; low memory footprint; control of caching frames in RAM; 64-bit support; multiple playheads in a single video; possibly a metadata track that is synced to video frames to support, eg., CV pre-processing.
Does anyone have any thoughts on this approach? Is there any prior work to build off of, or is this a foolish way to go about it?
The text was updated successfully, but these errors were encountered: