Giter Site home page Giter Site logo

Comments (6)

marcbaechinger avatar marcbaechinger commented on August 21, 2024

Can you please provide us with more detailed information what the problem is and how it can be reproduced? Please provide reproduction steps to make the issue actionable for us.

from media.

andrewlewis avatar andrewlewis commented on August 21, 2024

If I understand correctly, this is about the debug preview in the transformer demo showing the video rotated through 90 degrees. Please let me know if that's not correct though.

As the name suggests this view is just for debugging not for end users. It shows the frames that are being passed to the video encoder when transcoding with Transformer, which are rotated when the output is portrait because the video is encoded in landscape then metadata is set on the output MP4 to rotate it to the requested orientation. So this is working as intended.

What is the use case for showing this to users? I wonder if using ExoPlayer with setVideoEffects would be a more suitable replacement for this.

from media.

steelbytes avatar steelbytes commented on August 21, 2024

If I understand correctly, this is about the debug preview in the transformer demo showing the video rotated through 90 degrees.

correct.

As the name suggests this view is just for debugging not for end users. It shows the frames that are being passed to the video encoder when transcoding with Transformer, which are rotated when the output is portrait because the video is encoded in landscape then metadata is set on the output MP4 to rotate it to the requested orientation. So this is working as intended.

ok, you developed this view for debug but I don't see why it has to display wrong . If it's wrong and you're not concerned then why even make this view available in the library at all?

What is the use case for showing this to users?

my app has many controls for changing the transformation of the video. Being able to see the results of them without having to save the output or wait for it to finish and then having to open is important to the practical use of the controls.

I wonder if using ExoPlayer with setVideoEffects would be a more suitable replacement for this.

not familiar with ExoPlayer. all the docs I have read direct me to what I am doing, including your demo app

from media.

andrewlewis avatar andrewlewis commented on August 21, 2024

The rotation gets applied at the muxer/container level, whereas frames are sent to the debug preview view (if set) upstream of that, at the end of the video frame processing pipeline.

We could add code to the way the debug preview renders to apply the same rotation. However, I think some users of the debug preview would prefer to see exactly the data that's sent to the encoder without this kind of postprocessing.

The reason to make this view available is to help developers see intermediate output without having to wait for the export operation to complete.

Please could you try using ExoPlayer.setVideoEffects? That lets you see changes to transformations as they are applied. You may want the feature mentioned on #1080 about supporting updating the current frame when the effect changes while the player is paused to be implemented.

from media.

steelbytes avatar steelbytes commented on August 21, 2024

I'll stick researching ExoPlayer on my todo list

from media.

steelbytes avatar steelbytes commented on August 21, 2024

Please could you try using ExoPlayer.setVideoEffects? That lets you see changes to transformations as they are applied. You may want the feature mentioned on #1080 about supporting updating the current frame when the effect changes while the player is paused to be implemented.

I tried ExoPlayer.setVideoEffects and in TextureOverlay.getTextureId(presentationTimeUs: Long) presentationTimeUs doesn't work. So sadly this won't help me.

from media.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.