Skip to content
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

Support native viewing of videos created with this library (without large file sizes) #9

Open
timja opened this issue Aug 24, 2024 · 2 comments

Comments

@timja
Copy link

timja commented Aug 24, 2024

Currently with this library neither quicktime or windows media player are able to open most of the encodings supported by this library.

You can open with VLC but ideally the default media players should work.

See more details at jenkinsci/acceptance-test-harness#1041 (comment)

With the current version of the montemedia library you can create videos in the following formats, that will open natively:

Windows: AVI with JPEG encoding.
macOS: QuickTime with JPEG encoding.
I know that these settings produce impractically huge files.

I am planning to do a proof-of-concept with the Foreign Function & Memory API that was released in JDK 21.
Maybe it is possible to encode videos using the native Windows and macOS APIs.

@timja timja changed the title Support native viewing of videos created with this repository (without large file sizes) Support native viewing of videos created with this library (without large file sizes) Aug 24, 2024
@wrandelshofer
Copy link
Owner

Yes, this is a problem in my projects too.

I am planning to use the MP4 H.264 codec from the JCodec library in a future version of this library.

@wrandelshofer
Copy link
Owner

wrandelshofer commented Oct 8, 2024

I made some progress. I have integrated some code from JCodec into the main branch.
It turns out, that the JCodec H264Encoder is too slow for encoding a screen recording in realtime.
I am now investigating possible solutions.
For example,

  • The screen recorder could write a temporary movie file with a lossless low-complexity codec (for examle RLE). After recording is completed, it could convert it to H.264.
  • We could implement a low-complexity H.264 encoder by ourselves. And use that one instead JCodec's H264Encoder.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants