-
-
Save shimpe/c4140e8bae81f89505d217afbebeeb76 to your computer and use it in GitHub Desktop.
| import moviepy.editor as mpy | |
| from vectortween.Mapping import Mapping | |
| basename = 'video.mp4' | |
| inputfile = basename + ".mp4" | |
| outputfile = basename + ".new.mp4" | |
| video_file = mpy.VideoFileClip(inputfile) | |
| duration = video_file.duration # duration | |
| video_width, video_height = video_file.size | |
| textclip = mpy.TextClip("www.YouTube.com",fontsize=30,color="red") | |
| textclip_width, textclip_height = textclip.size | |
| extra_margin = 10 | |
| desired_final_x = video_width - textclip_width - extra_margin | |
| desired_final_y = 0 | |
| def position(t): | |
| return Mapping.linlin(t, 0, duration, 0, desired_final_x), desired_final_y | |
| add_text = textclip.set_position(position).set_duration(video_file.duration) | |
| final = mpy.CompositeVideoClip([video_file,add_text]) | |
| final.write_videofile(outputfile) |
It's amazing, text animations are very attractive. I going to try it :)
camala or pyvectortween, In which module can be set the random position (every custom second) of overlay text on video?
I tried FFmpeg by this instruction: https://ffmpeg.org/ffmpeg-filters.html#Examples-71
- Show the text at a random position, switching to a new position every 30 seconds:
drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=if(eq(mod(t\,30)\,0)\,rand(0\,(w-text_w))\,x):y=if(eq(mod(t\,30)\,0)\,rand(0\,(h-text_h))\,y)"
My custom input, every 10 seconds: Working
ffmpeg -i video_input.mp4 -vf drawtext="fontfile='C\:/Users/BRIGHT/AppData/Local/Microsoft/WINDOWS/fonts/RacingSansOne-Regular.ttf':text='YouTube.com':fontsize=h/15:fontcolor=white:alpha=0.2:bordercolor=black:borderw=1:x=if(eq(mod(t\,10)\,0)\,rand(0\,(w-text_w))\,x):y=if(eq(mod(t\,10)\,0)\,rand(0\,(h-text_h))\,y)" -codec:a copy video_output.mp4
FFmpeg is too much complicated. Does have any option to create the same task by moviepy
I'm glad I could be of help. If you ever want to try making a more fancy text animation, you may want to take a look at my recently started hobby project: https://shimpe.github.io/camala/