ai2thor
ai2thor copied to clipboard
Is there a way to make a video from the renderer?
Hello, I currently make videos of agent trajectories using the event frames. However, that's much choppier than the renderer which shows smooth transitions (e.g. when things close). Is it possible to get all frames from the renderer or get the video somehow?
Thank you.
Cheers
There is not currently a way to get event frames of the smooth transitions, as that would require hundreds of metadata returns to include each frame update in order to return all frames where the smooth animation is happening.
It may be possible to grab all frames directly from the renderer by just screen recording the renderer using a third party screen recording tool like quicktime.
There's a video controller through Python that is used internally to capture scenes footage like that shown here: https://www.youtube.com/watch?v=KcELPpdN770
Is this around something you'd be interested in?
––––––––––––––
For navigation frames, if the only problem is that it's choppy, a solution would be to just capture more frames by moving the agent in smaller intervals.
––––––––––––––
For object interaction frames, the best approach is likely to capture a video inside of Unity.
This is something I'd be very interested in! I ask because I generate hundreds of videos at a time for different runs and it would be nice to get nice, smooth videos for demos. Currently, they're a bit choppy :/
Also, as a note, I focus on object-interaction, so smoother frames when interacting with objects is what I'm looking for.
This should be possible with #441 and the existing video controller. Expect an update with documentation at some point!
Hi, there is an issue with the video controller. See issue https://github.com/allenai/ai2thor/issues/498#issuecomment-893693197
@mattdeitke PR https://github.com/allenai/ai2thor/pull/856 fixes this bug