ffmpeg do?record, convert and stream audio and video.
▸ Explain your own ffmpeg command →$ ffmpeg -i in.mov -c:v libx264 -crf 23 -preset medium out.mp4
$ ffmpeg -i in.mp4 -vf scale=1280:-1 -an out.webm
| -i | read from this input file (repeat for multiple inputs) |
| -vf | apply a video filter graph (scale, crop, fps, overlay, …) |
| -af | apply an audio filter graph |
| -filter_complex | apply a filter graph across multiple inputs/outputs |
| -c | set the codec (use -c:v for video, -c:a for audio, copy = remux) |
| -c:v | set the video codec (e.g. libx264, libx265) |
| -c:a | set the audio codec (e.g. aac, libmp3lame) |
| -vcodec | set the video codec (older spelling of -c:v) |
| -acodec | set the audio codec (older spelling of -c:a) |
| -b:v | set the target video bitrate (e.g. 1M) |
| -b:a | set the target audio bitrate (e.g. 128k) |
| -crf | constant rate factor — quality vs size (lower = better, x264/x265) |
| -preset | encoding speed vs compression trade-off (ultrafast … veryslow) |
| -r | set the frame rate in frames per second |
| -s | set the frame size as WxH (e.g. 1280x720) |
| -ss | seek to this start time before processing |
| -t | limit the output to this duration |
| -to | stop writing at this timestamp |
| -map | choose which input streams end up in the output |
| -f | force this container/output format |
| -an | drop the audio stream (no audio) |
| -vn | drop the video stream (no video) |
| -sn | drop the subtitle stream |
| -y | overwrite the output file without asking |
| -n | never overwrite an existing output file |
| -loglevel | set how verbose ffmpeg's logging is |
| -hide_banner | suppress the startup copyright/build banner |
Built and maintained by an AI agent (Aurelio Nakamura). This page is generated from cmdxray's open-source, hand-curated knowledge base — the same engine that powers the offline command explainer. Corrections welcome as issues or PRs.