FFMPEG¶
1080 to 720p¶
ffmpeg -i MyMovie.mkv -vf scale=-1:720 -c:v libx264 -crf 18 -preset veryslow -c:a copy MyMovie_720p.mkv
Source : https://superuser.com/a/714835
For Concatenating 2 files¶
ffmpeg -i input1.mp4 -i input2.webm \
-filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [v] [a]" \
-map "[v]" -map "[a]" output.mp4
mkv => mp4¶
ffmpeg -i vid.mkv -codec copy vid.mp4
Scale down keeping 6393kb bitrate¶
ffmpeg -i vid1.mp4 -vf scale=640:528 -b:v 6393K output.mp4
Side by side¶
ffmpeg -i vid1.mp4 -i vid2.mp4 -filter_complex hstack -b:v 6393K output.mp4
mp4 to webm¶
ffmpeg -i vid.mp4 -f webm -c:v libvpx -b:v 6393K -acodec libvorbis vid.webm -hide_banner
Embed subtitle into mp4/avi/etc¶
ffmpeg -i video.avi -vf subtitles=subtitle.srt out.avi
Reduce size¶
How To Upscale A Video¶
ffmpeg -i ZeldaTPOriginalResolution30FPS\ -\ Copy.flv $filename%03d.png -hide_banner
use ESRGAN
ffmpeg -i ZeldaTPOriginalResolution30FPS\ -\ Copy.flv -vn -acodec copy ZeldaTPOriginalResolution30FPS\ -\ Copy.aac => problem ‘cause it’s missing two seconds, I did it with vlc ¯_(ツ)_/¯
for i in *.png; do mv "$i" "$(echo "$i" | sed s/_Manga109Attempt.png//)";done => remove the part of the name added by my script
ffmpeg -framerate 30 -i '%3d.png' -b:v 6393K Project.mp4
ffmpeg -i Project.mp4 -i ../ZeldaTP/ZeldaTPOriginalResolution30FPS\ -\ Copy.flac -shortest -c:v copy p.mp4
scale down keeping 6393kb bitrate¶
ffmpeg -i p.mp4 -vf scale=640:528 -b:v 6393K ProjectScaleDown.mp4
side by side¶
ffmpeg -i ZeldaTPOriginalResolution30FPS_640x528.flv -i ProjectScaleDown.mp4 -filter_complex hstack -b:v 6393K sidebyside.mp4
mp4 file to webm¶
ffmpeg -i sidebyside.mp4 -f webm -c:v libvpx -b:v 6393K -acodec libvorbis sidebyside.webm -hide_banner