-
Notifications
You must be signed in to change notification settings - Fork 668
Implement an FfmpegVideoRenderer #1591
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
base: main
Are you sure you want to change the base?
Conversation
|
Is there any progress? @microkatz |
|
@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 |
|
@rabbitknight thx |
|
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 |
|
I finally found the bug video_2024-08-17_00-07-21.mp4 |
Thanks~ let me see what happened. I'll feedback on Monday. |
@FongMi |
|
Thx, I will test it. |
|
@rabbitknight Thers is no problem now, thanks. |
|
@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 |
Is your audio codecs as good as nextlib? |
It worked fine for testing, thank you. |
@FongMi I will compare the |
@FongMi, I conducted a comparison:
|
|
@rabbitknight Thanks, I understand. |
|
Attention! ExoPlayer can now decode Apple ProRes videos using ffmpeg.(Apple ProRes MAX is still not supported). |
|
I have tried this enhancement and it works well for mpeg2, which many mobile phones do not support. I will be using it in my applications. Please can you merge it into the next version? |
|
I found some issues
|
…edia into local_origin_main
Merge AndroidX.main
Thank you for your feedback.
|
|
Another mime type that I added, and tested it works: |
Awesome!I'm going to test it out! |
|
One more issue I found - anamorphic video is not reproduced properly. This is because the VideoSize returned from player.getVideoSize() always has pixelWidthHeightRatio as 1.0. On anamorphic video this should be values such as 1.212121. A call to player.getVideoFormat() does return the correct value in format.pixelWidthHeightRatio. However the format returns only the initial value, when format changes midstream, the listener gets onVideoSizeChanged with a new value for VideoSize but at that time calling player.getVideoFormat() still returns the old size and pixelWidthHeightRatio. I worked around this by modifying the onVideoSizeChanged handler to get the pixelWidthHeightRatio from getVideoFormat, but that is not perfect as it will be wrong if the format changes. However format changes are uncommon and until recently, exoplayer did not handle them at all. Let me know if you want a sample anamorphic video with format change for testing. |
|
Sorry - vc1 was in your list anyway. I had added it previously. |
My test cases not contains this format. |
|
Here is a sample video. pixelWidthHeightRatio is 1.2121212 at the start with video 528x480 that should be shown at 640x480. After 10 seconds it changes to pixelWidthHeightRatio of 1.0 with resolution 1920x1080. https://drive.google.com/file/d/1E0gj9B6Kr8-NHUuRVfFDBgKQSotdpD5s/view?usp=sharing |
Maybe The BaseDecoder should compat this case. |
|
Hello, Thank you! |
Nextlib and this PR share the same core objective: to enable FFmpeg extension support for Media3 (ExoPlayer). Their code implementations are nearly identical (likely originating from the same source) with minor subsequent adjustments. Key differences: Mediainfo Feature: Nextlib includes an additional mediainfo component, though its purpose remains unclear to me. Notably, its code quality appears suboptimal. For production use: I recommend this PR implementation. |

Merge actual implementation in google/ExoPlayer#7132.