Video Creation

From wikiluntti
Revision as of 10:58, 27 July 2021 by Mol (talk | contribs) (→‎FFMPEG)

Introduction

Some ideas to create better videos.

Ubuntu 20.04: Key-Mon need a repositoru Ubuntu: Screenkey (apt-get install screenkey installs an old version).

Theory

Audio: Audacity

  • Record Volume: 0.97 for my setup.
  • Effect -> Noise removal
  • Effect -> Bass boost/ Discant boost
  • Effect -> Truncate Silence 0.2 s + 0.2 s
  • Normalize

OBS tips

https://www.youtube.com/c/YoramSolomon/videos

Remove similar frames: FFMPEG

Remove similar frames

ffmpeg -i input.mp4 -vf mpdecimate,setpts=N/FRAME_RATE/TB out.mp4

see more info at https://stackoverflow.com/questions/37088517/remove-sequentially-duplicate-frames-when-using-ffmpeg

Video to GIF

Convert video to frames

ffmpeg -i input.mkv -f image2 image-%07d.png

Frames to video

ffmpeg -i image-%07d.png -vf fps=20,scale=720:-1 logo.gif

The smaller palette reduces the size remarkably. Create a palette with 16 colors: ffmpeg -i image-0001111.png -vf palettegen=16 palette.png

and use that to generate with an animated gif 5 fps:

ffmpeg -i image-%07d.png -i palette.png -filter_complex "fps=5,scale=720:-1:flags=lanczos[x];[x][1:v]paletteuse" logo5_palette.gif

Light Board

See lightboard.info for great examples, ideas and tutorials.

Mouse Effects

Windows: Keypose, F9, shows keys and mouse.

clickII.ahk by Traycerb shows mouse:

ClickII.ahk
;Visualize mouse clicks by showing radiating concentric circles on mouse click
;Author: traycerb
;Date/Version: 01-31-2018
;
;Source:
;https://superuser.com/questions/106815/how-do-you-add-a-visual-effect-to-a-mouse-click-from-within-windows
;https://autohotkey.com/board/topic/77380-mouse-click-special-effects-for-presentationsdemos/

;Dynamically switch on the Windows accessibility feature to show the mouse when the control key is pressed
;when the script is executed, then switch off afterwards
;Windows settings > Mouse > Pointer Options tab > Visibility group > Show location of pointer when I press CTRL key



;Window's SystemParametersInfo function, retrieves or sets the value of one of the 
;system-wide parameters.  AHK DllCall fxn with SystemParameterInfo parameter is used to access
;this Windows API.
;https://msdn.microsoft.com/en-us/library/windows/desktop/ms724947(v=vs.85).aspx
;BOOL WINAPI SystemParametersInfo(
;  _In_    UINT  uiAction,
;  _In_    UINT  uiParam,
;  _Inout_ PVOID pvParam,
;  _In_    UINT  fWinIni
;);

;uiParam [in]
;Type: UINT
;
;A parameter whose usage and format depends on the system parameter being queried or set. 
;For more information about system-wide parameters, see the uiAction parameter. 
;If not otherwise indicated, you must specify zero for this parameter.

;pvParam [in, out]
;Type: PVOID
;
;A parameter whose usage and format depends on the system parameter being queried or set. 
;For more information about system-wide parameters, see the uiAction parameter. 
;If not otherwise indicated, you must specify NULL for this parameter. 
;For information on the PVOID datatype, see Windows Data Types.

;fWinIni [in]
;Type: UINT
;
;If a system parameter is being set, specifies whether the user profile is to be updated, 
;and if so, whether the WM_SETTINGCHANGE message is to be broadcast to all top-level 
;windows to notify them of the change.

;This parameter can be zero if you do not want to update the user profile 
;or broadcast the WM_SETTINGCHANGE message or it can be set to the following [...]

;Accessibility parameter    
;S0x101D PI_SETMOUSESONAR
;Turns the Sonar accessibility feature on or off. This feature briefly 
;shows several concentric circles around the mouse pointer when the user 
;presses and releases the CTRL key. 
;The pvParam parameter specifies TRUE for on and FALSE for off. 

;Press the control button each time mouse button is pressed, showing location of mouse pointer.
~LButton::
{
  DllCall("user32\SystemParametersInfo", UInt, 0x101D, UInt, 0, UInt, 1, UInt, 0) 
  Send {Ctrl}
  DllCall("user32\SystemParametersInfo", UInt, 0x101D, UInt, 0, UInt, 0, UInt, 0) 
  return
}

~RButton::
{
  DllCall("user32\SystemParametersInfo", UInt, 0x101D, UInt, 0, UInt, 1, UInt, 0) 
  Send {Ctrl}
  DllCall("user32\SystemParametersInfo", UInt, 0x101D, UInt, 0, UInt, 0, UInt, 0) 
  return
}

Ubuntu: Screenkey (apt-get install screenkey).

For beginners

High End

Theory