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

Implement an FfmpegVideoRenderer #1591

Open
wants to merge 11 commits into
base: main
Choose a base branch
from

Conversation

rabbitknight
Copy link

Merge actual implementation in google/ExoPlayer#7132.

FongMi referenced this pull request in moneytoo/media Aug 9, 2024
@microkatz microkatz self-assigned this Aug 12, 2024
@rabbitknight
Copy link
Author

Is there any progress? @microkatz

@FongMi
Copy link

FongMi commented Aug 16, 2024

@rabbitknight Could you provide me with aar for testing? I don’t have a compilation environment.

@rabbitknight
Copy link
Author

@rabbitknight Could you provide me with aar for testing? I don’t have a compilation environment.

Use the provided link.

https://drive.google.com/file/d/1gIZYH6dR780BfPqll1w1VAMaaSkcLqRM/view?usp=drive_link

@FongMi
Copy link

FongMi commented Aug 16, 2024

@rabbitknight thx

@FongMi
Copy link

FongMi commented Aug 16, 2024

There is no problem in my test, unlike nextlib which needs to reset the surface.

@rabbitknight
Copy link
Author

There is no problem in my test, unlike nextlib which needs to reset the surface.

Thanks for your feedback. There may be slight differences, but overall the code is similar. I will keep watching until successfully merged. :P

@FongMi
Copy link

FongMi commented Aug 16, 2024

I finally found the bug
When I randomly seek 3~5 times
The screen is freezes
Use EXTENSION_RENDERER_MODE_PREFER for force ffmpeg decode

video_2024-08-17_00-07-21.mp4

@rabbitknight
Copy link
Author

I finally found the bug

When I randomly seek 3~5 times

The screen is freezes

Use EXTENSION_RENDERER_MODE_PREFER for force ffmpeg decode

video_2024-08-17_00-07-21.mp4

Thanks~ let me see what happened. I'll feedback on Monday.

@rabbitknight
Copy link
Author

I finally found the bug When I randomly seek 3~5 times The screen is freezes Use EXTENSION_RENDERER_MODE_PREFER for force ffmpeg decode

video_2024-08-17_00-07-21.mp4

@FongMi
I reproduced the issue.
Reason is the BlockingQueue buffers are not cleared when the decoder is flushed. (Causing the decode pipeline to block!!)
So I directly modified the thread used for format conversion and the BlockingQueue.h.
You can get the Lasted aar from : https://drive.google.com/drive/folders/1pwOkFUzMwpfm492IFrUebkn7MUGBA2My?usp=drive_link

@FongMi
Copy link

FongMi commented Aug 19, 2024

Thx, I will test it.

@FongMi
Copy link

FongMi commented Aug 19, 2024

@rabbitknight Thers is no problem now, thanks.

@FongMi
Copy link

FongMi commented Aug 21, 2024

@rabbitknight Can you support mepg and mpeg2 like nextlib

@rabbitknight
Copy link
Author

@FongMi
Copy link

FongMi commented Aug 21, 2024

@rabbitknight Can you support mepg and mpeg2 like nextlib

@FongMi you can get the latest aar from: https://drive.google.com/drive/folders/1pwOkFUzMwpfm492IFrUebkn7MUGBA2My?usp=drive_link the commit is :57346bb

Is your audio codecs as good as nextlib?

@FongMi
Copy link

FongMi commented Aug 21, 2024

@rabbitknight Can you support mepg and mpeg2 like nextlib
@FongMi you can get the latest aar from: https://drive.google.com/drive/folders/1pwOkFUzMwpfm492IFrUebkn7MUGBA2My?usp=drive_link the commit is :57346bb

It worked fine for testing, thank you.

@rabbitknight
Copy link
Author

Is your audio codecs as good as nextlib?

@FongMi I will compare the
difference between nexlib tomorrow. Reduce the gap.

@rabbitknight
Copy link
Author

Is your audio codecs as good as nextlib?

@FongMi I will compare the difference between nexlib tomorrow. Reduce the gap.

@FongMi, I conducted a comparison:

  1. The audio codecs are the same.
  2. However, it appears that nextlibs uses an extended VPX decoder.
  3. In my test case, FFmpeg can directly decode VP8 and VP9.

@FongMi
Copy link

FongMi commented Aug 22, 2024

@rabbitknight Thanks, I understand.

@rabbitknight
Copy link
Author

It has been over a month. Any progress so far? @microkatz

@rabbitknight
Copy link
Author

Attention! ExoPlayer can now decode Apple ProRes videos using ffmpeg.(Apple ProRes MAX is still not supported).

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

Successfully merging this pull request may close these issues.

3 participants