```bash # convert with default settings ffmpeg -i input.mkv output.mp4 # convert to mp4 using nvidia nvenc # where -b:v is suitably set, e.g 2M for 720p ffmpeg -i input.mkv -c:v h264_nvenc -b:v 4M output.mp4 # as above but don't re-encode audio ffmpeg -i input.mkv -c:v h264_nvenc -b:v 4M -c:a copy out.mp4 # extract audio as wav ffmpeg -i input.mp4 output.wav # extract aac audio from mp4 ffmpeg -i input.mp4 -vn -c:a copy output.m4a # don't reencode anything (just change metadata or container format) ffmpeg -i input.mp4 -c copy output.webm # don't reencode audio, but scale video ffmpeg -i input.mp4 -c:a copy -vf scale=w=1280:h=720 output.mp4 ``` ## Metadata ```bash # extract metadata ffmpeg -i input.mp4 -f ffmetadata metadata.txt # writes metadata to metadata.txt # applying metadata ffmpeg -i input.mp4 -f ffmetadata -i metadata.txt -map_metadata 1 ...other_opts... output.mp4 # specifying metadata ffmpeg -i input.mp4 -metadata artist="Mr Flibble" -metadata title="Hex Vision" -c copy output.mp4 ``` ## Loop Static Image From [stackoverflow](https://stackoverflow.com/questions/25891342/creating-a-video-from-a-single-image-for-a-specific-duration-in-ffmpeg) ```bash ffmpeg -loop 1 -i image.png -c:v libx264 -t 15 -pix_fmt yuv420p -vf scale=320:240 out.mp4 ``` * The -t 15 makes it 15 seconds long. * The -vf scale=320:240 sets the width/height. ## Audio Filters A 200Hz highpass filter ``` ffmpeg -i in.wav -af highpass=f=200 out.wav ```