Is it possible to edit a video using QT/QML for Android and iOS?
I would like to be able to trim a video from timeX to timeY and add (if possible) a watermark.
I did some research but I didn't find anything good.
All Qt has to offer regarding video is contained in the Qt Multimedia library.
This library is not designed to do video editing, so you will have nothing out of the box.
However, it might be possible to combine QMediaRecorder and QMediaPlayer to trim a video. And you also have access to video frames: https://doc.qt.io/qt-5/videooverview.html#working-with-low-level-video-frames
I am not sure you will be able to do what you want using only Qt Multimedia, you might be better off using a dedicated video editing library. Maybe you can take a look at OpenShot, it is an open source video editor. The user interface is built with Qt and the video editing functions are in a separate library: libopenshot.
Related
Is there any best way to record screen video in Unity? There is an Everyplay plugin/tools, but I found a message on forum that the service will be shutdown in near future (here) . So is there some options to record video from the screen(or unity Camera on scene) to android/ios device? Thanks.
We've built an open-source GIF-recording project: https://github.com/getsocial-im/getsocial-capture. C# examples are in the readme. It records main camera by default.
You can record in 2 modes:
Continuous mode - capture X last frames.
Manual mode - capture frames on your own when needed. For example, record a timelapse of the level.
Here's the recording of a game session from the test app. The recorded GIF preview shows up in the end:
If you want to mimic the social community of Everyplay, you can also check out our social layer tools (Activity Feeds). Disclaimer: I'm from GetSocial.
Did you take a look on the FFmpeg Unity Asset? This should work for Android and iOS: https://assetstore.unity.com/packages/tools/video/ffmpeg-unity-bind-93622
The Asset also has a lot more functions that you'll maybe need, too :-)
(CURRENTLY ONLY FOR ANDROID, WORKING ON THE IOS)
I created a Unity Asset for screen recording which is free to use and easy to integrate with Unity. I am still working on it and hopefully add more features. This plugin will only work on Android(Lolipop or above) devices. I also posted a video tutorial on how to integrate it on your unity project
ASSET DOWNLOAD LINK: https://drive.google.com/open?id=1pIN5q30XOy4RXfUsb3J2rBBF4cqlc-ZR
Tutorial LINK: https://www.youtube.com/watch?v=j3zGzbe9V1o
NOTE: The core plugin was developed by Kim (https://github.com/thanh-nguyen-kim/Unity_Android_Screen_Recorder) which I used to create the .asset file.
Hope it helps.
I know that the QMultimediaWidgets are not supported for C++. I am developing a native application for Android as well. Since I don't use QML I need a way of playing my videos in the application. I want to use the QMediaPlayer since I rely on the signals and slots. Is there any manually developed backend which works on Android or a solution how I can render the video myself still using QMediaPlayer?
Is there a way I can developed such a backend myself using ffmpeg or any available program on Android? Will there be any update for this in Qt soon?
QtMultimediaWidgets is not supported on Android so you need to use the QML elements. What you can theoretically try is to embed a QML scene using the MediaPlayer and VideoOutput elements in your QWidget-based app using QWidget::createWindowContainer. Once you see this can be done, you can get your QMediaPlayer object from QML using the mediaObject property of the MediaPlayer QML element. I never tried to do something like this actually.
You may also try to use another plugin like QtAV, but you may lose acceleration.
I am working on video editing in android. After alot of research and
development the only possible solution for real time video editing
found is FFMpeg (Other libraries like Vitamio just impose change
on video while running instead of changing the video). Want to find
soltuion where FFMpeg can easily integrate into android studio
project. Want to do Crop, trim, concatenation and other possible
process on video.
I am working on an app for android that creates video file from a video at start and then set of images, and saves it.
Is there any way to accomplish that?
I tried JCodec and it has broken libraries, untrusted code on the web and lack of knowledge about this library.
I tried FFMpeg and it is unsupported enough on android and involves working with NDK.
I tried to create an animation with AnimationDrawable and save this animation as a video, but I can't find a way to save animation as video except using the feature of KITKAT 4.4, but it requires connecting to a computer and having a root.
Is there any other solutions or a trusted and explained way to do this using the ways above?
Thank in advance
I would vote for FFMPEG. You don't need NDK or other sourcery if you can afford a prebuilt solution, like FFmpeg 4 Android.
I was able to build ffmpeg library by using rock player build script.
Now I have this .so file, how do I play video? And I want to display this video inside a small LinearLayout in my Activity.
Is it possible?
Update:
I know that it's easy to play video using VideoView or MediaPlayer + SurfaceView. I just wanted to understand more about ffmpeg library and how to display the frames inside an Android Activity.
Have a look at this player: https://github.com/bbcallen/ijkplayer
Basically what you need to do is build a JNI interface through to the MediaPlayer class (or possibly ExoPlayer in newer Android though I haven't done this yet).
If you look at the repo link you will see that this needs to be done on top of ffplay more than ffmpeg as the former is the player and the latter the decode/encode/package tool.
There are a few ways of doing this. You should have a look at Dolphin Player, an open source media player for Android. Its actually rather complex, you could also look at the VLC source code which makes use of FFMPEG but VLC is an extensive very complete wrapper to play videos.
See for example an Android app in github: https://github.com/havlenapetr/FFMpeg. This project may be somewhat outdated, but its part that is responsible for video display is quite understandable. You can look for more recent contributions on github.