# cut ```sh # from/to timestamp in format `hh:mm:ss.x` ffmpeg -ss -to -i infile -acodec copy -vcodec copy outfile ``` # height not divisible by 2 ```sh -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" ``` # swap and rename streams ```sh ffmpeg -i input.m4v \ -map 0:v:0 \ # take first video stream -map 0:a:1 \ # take second audio stream (*) -map 0:a:0 \ # take first audio stream (#) -map 0:s:0 \ # take first subtitle stream -metadata:s:1 language=eng \ # set second stream (*) to `eng` -metadata:s:2 language=deu \ # set third stream (#) to `deu` -disposition:a:0 default \ # set default tag in first audio stream -disposition:a:1 0 \ # set default tag in second audio stream -c copy \ # don't reencode anything output.m4v ``` # shift subtitle ```sh ffmpeg -itsoffset 3 -i input.srt output.srt ```