ffmpeg ================ ## Extract Audio From webm Lookup format of audio stream with: ffmpeg -i in.webm Then use that knowlege to extract that (audio) stream: ffmpeg -i in.webm -vn -acodec copy out.FORMAT_FROM_BEFORE ## Convert Formats ffmpeg -i in.opus out.wav ## Fine-tune audio codec [See also](https://slhck.info/video/2017/02/24/vbr-settings.html) Use -codec:v copy to keep video, or -codec:v no for audio-only. -codec:a aac -q:a 1.3 (min=0.1, good=1.3 max=2) -codec:a aac -b:a 96k -codec:a libmp3lame -q:a 2 -codec:a libopus -filter:a lowpass=f=16000 ## Fix Loudness war, bring bass back -af "equalizer=f=200:w=200:t=h:g=-9,equalizer=f=400:w=600:t=h:g=-9,equalizer=f=2000:w=2000:t=h:g=-12,equalizer=f=4000:w=4000:t=h:g=-12,equalizer=f=10000:w=10000:t=h:g=-12,volume=+0.0dB" ## Audio trim HINT: Repeat afade twice for log. -af "afade=t=in:d=500ms,afade=t=out:st=183427ms:d=500ms" \ ## Record Desktop ffmpeg -f gdigrab -framerate 6 -probesize 10M -offset_x 0 -offset_y 0 \ -video_size 1920x1200 -show_region 1 -i desktop -c:v h264_qsv \ -pix_fmt yuv420p "output-$(date +%Y%m%d-%H%M%S).mp4" ## Trim video -i INFILE -ss -t OUTFILE -i INFILE -ss -to OUTFILE ## Concatenate && ffmpeg -i one.mkv -i two.mkv \ -filter_complex '[0:v] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]' \ -map "[v]" -map "[a]" out.mkv \ ## Rotate Portrait -i INFILE -vf "transpose=2" OUTFILE ## Video to Gif HINT: Use same filter for palette as for conversion. FILTERV=fps=6,scale=-1:600 FILTERV=fps=6,scale=-1:480 INPUTV=input.mp4 Create custom palette: ffmpeg -ss 4 -t 33 -i "$INPUTV" -vf "$FILTERV,palettegen=stats_mode=diff" palette.png Use this palette: ffmpeg -ss 4 -t 33 -i "$INPUTV" -i palette.png -filter_complex "[0:v]$FILTERV[vid];[vid][1:v]paletteuse=dither=bayer:bayer_scale=5:diff_mode=rectangle" output.gif Working example from web (but not optimized): ffmpeg -ss 0 -t 2.5 -i INPUT.mp4 -filter_complex "[0:v] fps=12,scale=-1:600,split [a][b];[a] palettegen=stats_mode=diff [p];[b][p] paletteuse=new=1" OUTPUT.gif ## Pictures to Video (eg Timelapse) -start_number 5619 -framerate 24 -i "input/IMG_%d.JPG" \ -vf "scale=4096:-1,crop=4096:2160:0:0" \ out.mkv