ffmpeg

My personal code snippets for easier code usage.

Alternative: mencoder

mencoder dvd://2 -dvd-device /run/media/user/disc_name/ -ovc x264 -oac mp3lame -o /outpath/01.mp4

mplayer dvd://2 -dvd-device /run/media/user/disc_name/ -dumpstream -dumpfile /outpath/01.VOB

vlc -> Media -> Convert/Save

Compatibility

ffmpeg -i input.mp4 -c:v libx264 -profile:v baseline -level 3.0 -pix_fmt yuv420p output.mp4

Blur

sleep 3 && slurp

ffmpeg -i zprava.mp4 -filter_complex "\ [0:v]boxblur=luma_radius=10:luma_power=1[blurred]; \ [blurred]crop=w=906:h=550:x=546:y=501[blur1]; \ [blurred]crop=w=254:h=200:x=982:y=439[blur2]; \ [blurred]crop=w=99:h=24:x=1654:y=97[blur3]; \ [blurred]crop=w=192:h=30:x=287:y=534[blur4]; \ [blurred]crop=w=755:h=377:x=600:y=450[blur5]; \ [0:v][blur1]overlay=546:501:enable='between(t,8,26)'[v1]; \ [v1][blur2]overlay=982:439:enable='between(t,29,34)'[v2]; \ [v2][blur3]overlay=1654:97:enable='between(t,29,50)'[v3]; \ [v3][blur4]overlay=287:534:enable='between(t,33,37)'[v4]; \ [v4][blur5]overlay=600:450:enable='between(t,39,50)'[v5]" \ -map "[v5]" portal_blurred.mp4

Loop

ffmpeg -stream_loop 5 -i input.mp4 output.mp4

Rotate

ffmpeg -i input.mp4 -filter_complex "[0]transpose=1[out]" -map "[out]" output.mp4

Cut (trim)

ffmpeg -i 20250704_165750.mp4 -filter_complex \ "[0:v]trim=start=0:end=121,setpts=PTS-STARTPTS[part1]; \ [0:v]trim=start=142:end=175,setpts=PTS-STARTPTS[part2]; \ [0:v]trim=start=265:end=360,setpts=PTS-STARTPTS[part3]; \ [0:v]trim=start=415:end=419,setpts=PTS-STARTPTS[part4]; \ [0:v]trim=start=438:end=563,setpts=PTS-STARTPTS[part5]; \ [0:v]trim=start=762:end=769,setpts=PTS-STARTPTS[part6]; \ [0:v]trim=start=830:end=838,setpts=PTS-STARTPTS[part7]; \ [0:v]trim=start=861:end=892,setpts=PTS-STARTPTS[part8]; \ [0:v]trim=start=928:end=950,setpts=PTS-STARTPTS[part9]; \ [0:v]trim=start=1061:end=1162,setpts=PTS-STARTPTS[part10]; \ [part1][part2][part3][part4][part5][part6][part7][part8][part9][part10]concat=n=10:v=1[out]" \ -map "[out]" nosni_klicka.mp4

Concat

ffmpeg -i nosni_klicka.mp4 -i lepidlo1.mp4 -i lepidlo2.mp4 -i lepidlo3.mp4 -filter_complex \ "[0]transpose=1[r]; \ [r]scale=w=1080:h=1920[v0]; \ [1]scale=w=1080:h=1920[v1]; \ [2]scale=w=1080:h=1920[v2]; \ [3]scale=w=1080:h=1920[v3]; \ [v0][v1][v2][v3]concat=n=4:v=1[out]" \ -map "[out]" nosni_klicka_lepidlo.mp4

Loop

ffmpeg -stream_loop 5 -i input.mp4 output.mp4

Chain filters

ffmpeg -i input.mp4 -filter_complex "[0:0]crop=960:690:0:30, drawtext=text='V':fontcolor=yellow:fontsize=24:x=600:y=320[out]" -map "[out]" output.mp4

Crop

ffmpeg -i input.mp4 -filter_complex "[0:0]crop=in_w:in_h-30:0:30[o]" -map "[o]" output.mp4

ffmpeg -i input.mp4 -filter_complex "[0:0]crop=960:690:0:30[o]" -map "[o]" output.mp4

Slow

ffmpeg -i in.mp4 -filter_complex "[0:0]setpts=3.1\*PTS[o]" -map "[o]" slow.mp4

Text

ffmpeg -i input.mp4 -filter_complex "[0:0]drawtext=text='V':fontcolor=yellow:fontsize=24:x=530:y=330, drawtext=text='|':fontcolor=yellow:fontsize=24:x=530:y=310[out]" -map "[out]" output.mp4 ffmpeg -i input.mp4 -filter_complex "[0:0]