Can I make a video player with PySimpleGUI? - user-interface

I'm trying to make a video player showing subtitle text and some other information. I've learnt some basic stuffs about PySimpleGUI but I did not find any material talking about video player in this module. Does PySimpleGUI actually have such a function?

Related

Upload a picture to generate a video with special effects

I am stucked by a video processing feature, Specifically, upload an image and then generate a video based on various video templates.
Here are the video templates:
http://video-static.biku8.com/data/video/template/3286012076458048/7437ab55-2e83-4a36-9046-5708fcddf4c1.mp4
http://video-static.biku8.com/data/video/template/3274256089907264/ae8fa3f7-6c9c-45ca-810f-48db92cc14cb.mp4
http://video-static.biku8.com/data/video/template/3213894231425088/bf107d439b9043a58c1ea0ba26f811db_template.mp4
...
As shown in the video templates above, I just need to upload a photo to generate a great video.
My question
What is the specific idea for implementing this video?
Which third-party libraries are needed? (ffmpeg, opencv)
PS: I am using dlib and opencv for face recognition. I can generate face image, but I don't know how to insert face image into the correct position of these template videos.
I would suggest you to follow the below 3 steps
Load the template video by opencv, you can access the video frame by frame
Modify each frame, one by one.
Save frame to video stream writer
Regarding step 2, actually, you must copy the uploaded image to the each frame by a mask (the pixel from source image would be copied to destination image if its coordinate on the mask is non-black). The mask could be defined by a list of points OR by an image. You should pre-define a mask for each frame in a file. Then load the mask for each frame and copy.
How to read video, save video OpenCV read-write Video
How to insert image to another image Copy non rectangular ROI
Generating videos like them are all not easy tasks. I recommend to use Adobe After Effects or other video creating software (with some scripts and actions) if you don't need to generate it by a single program or program language.
Then, I answer them below when you need to generate it by programatically.
For the first one, you should recognize faces and bones. So you should use OpenCV. ( I recommend to use tools like OpenFrameworks or TouchDesigner and so on. )
For the second one, I don't know what you exactly want, but if you want to recognize the position of the bottle dynamically, you have to use deep learning or other way to detect it. Then you may need TensorFlow or OpenCV. ( If you just want to merge layers, you can use ffmpeg etc. )
For the last one, you should split the video frame into the boxes, then you have to control. I think there are many ways to implement this. I may use OpenFrameworks, TouchDesigner, vvvv, or Processing.
I think using ffmpeg for them is not recommended. This tool is not the best for generating complicated video. But ffmpeg will do good, for example if you just merge two videos with alpha.

How can I overlay an image onto a video

How can I overlay an image onto a video without changing the video file?
I have many videos and I want to be able to open them and overlay a ruler onto them and then measure the distance an individual moved visually. All I want is to play a video and then to open up an image with some transparency and position the image over the video. This way i would be able to look at the video and see how far the individual moved.
I would like to do this without having to embed the image like a watermark, because that is computationally expensive. I would need to copy the video, embed it with the ruler and then watch the video, then delete that video file. This seems unnecessary. I would like to just watch the video and have a transparent image over it while I a watching.
Is there a program that does this all together?
Alternatively, is there a program which I can use to open an image and make it transparent and then move it over the video that is playing?
Note: I am using Windows.
It sounds form your requirements that simply overlaying a separate image layer over the video will meet your needs.
Implementing this approach will depend on the video player client you are using, but you could implement an HTML5 based solution and play the videos locally with this (or even from a URL on the web if you have them there).
There is a nice answer with a working fiddle which shows how to do this with HTML5 here: https://stackoverflow.com/a/31175193/334402
One thing to note - you have not mentioned scale in your question. If you need to measure how far the person has moved in real distance, rather than in just cm's across the video screen, then you will need to somehow work out the scale of the video. This makes things considerably harder as the video may zoom in and out during the sequence you want to measure, so you would need some reference to calculate the scale for each frame. One approach would be to use the individual as a reference, assuming they are in all the frames you are interested in.
What about using good old VLC for that?
Open VLC go to Tools→Effects and Filters→Video Effects→Overlay and select Add logo checkbox:
Then, add your transparent overlay image and play any video with VLC. The output looks like this:

Can I add a poster to the audio player?

I'd like to add a poster to my audio player previews just like with the video mode of the mediaelement.js player.
I've checked all the shortcodes and there doesn't seem to be anything for this. Basically all I want is a static image immediately above the audio player that is visible before and during playing.
The reason I want this to be an 'all-in-one' player is because my WP theme allows me to create posts in the 'audio' format so that the audio player appears at the top of my category view of recent posts. It'd be awesome to add that image for each post and have it part of the audio player. Kind of like video but with less overhead.
Thanks in advance.

Create Music Slide show with ffmpeg

I am now trying to create picture slide show video with music. So far, I only know ffmpeg will be one of the solution. I successfully create one with my own picture and music. However, i wonder whether ffmpeg allows me to create such music slide show according to the beat of a song. What i mean all picture transition takes place at each beat of the song.
The photo slide show video should be in mp4 format.

How to generate video from photos with animation on server?

Good day!
I create programm for server, which should generate a video clip of the photos. The user sends photos to the server and the server generates a video with animation and sound track from this photos. I use ffmpeg for creation video, but how to create animation?. I need different (difficult) animation: transitions (fade in, fade out, scroll), zooming, animations numbers etc.
This example explains what I need.
Thanks
You should certainly check the MLT framework. It is used by many video editors, and supports different transitions in a quite easy form.
Check also Openshot which is video editing software written in Python. It also uses MLT framework, and due to being written in Python the code is rather easy to read.

Resources