5 Ways to Convert Video Files on Linux

If you need to convert video files on Linux, you have several reliable choices. HandBrake is the easiest option for most desktop users, FFmpeg is the most flexible for command-line work, VLC is convenient when it is already installed, Avidemux combines simple editing with transcoding, and Shutter Encoder is useful for batch jobs and a wide range of codecs.

Before you convert: container and codec are not the same thing

A file extension such as MP4, MKV, or WebM describes the container. Inside that container are video and audio streams encoded with codecs such as H.264, H.265/HEVC, AV1, AAC, or Opus. Renaming .mkv to .mp4 does not convert the video. For broad compatibility, H.264 video plus AAC audio in an MP4 container is still a practical target.

1. HandBrake: the easiest GUI for everyday conversions

HandBrake is a dedicated open-source transcoder. Its Linux team recommends the official Flatpak build; after Flathub is configured, you can install it with flatpak install fr.handbrake.ghb. See the official Linux installation guide.

  1. Open HandBrake and choose Open Source, then select the video.
  2. Choose a preset. For a general-purpose file, HandBrake documents Fast 1080p30 as a broadly compatible starting point when it suits the source; see Selecting a preset.
  3. Check the output format and destination filename.
  4. Click Start Encode.
HandBrake on Linux with a sample MKV video loaded and MP4 selected as the output format
Load the source video and review the output format before encoding.
HandBrake preset menu on Linux with Fast 1080p30 selected
HandBrake presets provide a quick starting point for resolution, codec, and quality settings.
HandBrake on Linux showing the output path and Start Encode button
Choose the destination file, then start the encode.

2. FFmpeg: best for the terminal and automation

FFmpeg is the most flexible option in this list. FFmpeg itself publishes source code and links to Linux distribution packages on its download page. After installing the package supplied for your distribution, a basic conversion can be as simple as:

ffmpeg -i input.avi output.mp4

This is also the basic re-encoding example in the official FFmpeg documentation. FFmpeg chooses suitable output encoders according to the build and output format. If you need exact codecs, bitrates, filters, subtitles, or batch scripts, specify those options explicitly instead of relying on defaults.

Linux terminal running an FFmpeg command that converts input AVI video to output MP4
FFmpeg is especially useful for repeatable terminal commands and scripts.

3. VLC: convenient for an occasional conversion

If VLC is already on your desktop, you may not need another app. VideoLAN's documentation confirms that VLC can convert media through the Media > Convert/Save workflow.

  1. Open VLC and choose Media > Convert/Save.
  2. Click Add, select the source video, and continue with Convert/Save.
  3. Choose a conversion profile, set the destination file and extension, then click Start.

VideoLAN's official conversion instructions describe the same sequence.

VLC on Linux with Media menu open and Convert Save highlighted
Start from Media > Convert/Save in VLC.
VLC Open Media dialog on Linux with a local MKV file selected
Add the source file in VLC's Open Media dialog.
VLC Convert dialog showing an MP4 H.264 conversion profile and destination path
Select a profile that matches the container and codecs you want.

4. Avidemux: useful when you also need simple edits

Avidemux is a lightweight video editor for Linux, Windows, and macOS. The project provides Linux downloads and source code through its official site and project repository.

  1. Open your video.
  2. Under Video Output, choose an encoder when you want to re-encode. Leaving it on Copy keeps the existing video stream instead.
  3. Choose the audio setting and an appropriate Output Format, such as an MP4 muxer for compatible streams.
  4. Save the new file.
Avidemux on Linux with Video Output and Audio Output set to Copy and MP4 Muxer selected
The Copy setting remuxes compatible streams without re-encoding them.
Avidemux on Linux with H.264 video encoding, AAC audio, and MP4 Muxer selected
Choose actual encoders when the video or audio must be converted.

5. Shutter Encoder: strong for batch and advanced formats

Shutter Encoder offers Linux DEB and AppImage downloads and supports output codecs including H.264, H.265, VP9, AV1, ProRes, DNxHR, and FFV1. Its official documentation also covers queues, bitrate controls, scaling, audio mapping, subtitles, and hardware acceleration.

  1. Add one or more source files.
  2. Choose a function such as H.264, H.265, VP9, or AV1.
  3. Set the container, quality or bitrate, resolution, and output folder as needed.
  4. Click Start function.
Shutter Encoder on Linux with a video loaded and the H.264 function selected
Choose the conversion function after adding your source files.
Shutter Encoder on Linux showing MP4 output, bitrate, resolution, and destination folder settings
Review output settings and the destination folder before starting.

Which Linux video converter should you use?

ToolBest fit
HandBrakeSimple, high-quality desktop transcoding
FFmpegAutomation, scripting, filters, and precise control
VLCQuick conversion without installing another dedicated converter
AvidemuxBasic edits plus remuxing or re-encoding
Shutter EncoderBatch work and a broad selection of delivery or editing codecs
Linux Files window showing five converted MP4 video files produced by different conversion tools
Whatever tool you choose, keep the original file until you have checked the converted result.

After conversion, play the entire output or at least check the beginning, middle, and end, plus audio and subtitles. If a file will not play on the target device, the usual problem is not the filename extension but an unsupported codec, profile, audio format, or container combination.

Leave a Comment

How to Record Speaker Output on Linux with Audacity

How to Record Speaker Output on Linux with Audacity

Capture Linux desktop audio in Audacity by routing its recording stream to your output device’s monitor source. Follow PulseAudio and PipeWire steps, export tips, and fixes for silent tracks.

How to Use Dropbox on Linux: Install and Sync Your Files

How to Use Dropbox on Linux: Install and Sync Your Files

Install Dropbox on Linux from the official package, sign in, sync a local folder, manage selective sync, and check status from the command line.

How to Install Inkscape on Linux: Ubuntu, Fedora, Arch, and More

How to Install Inkscape on Linux: Ubuntu, Fedora, Arch, and More

Install Inkscape from your Linux distribution’s repositories, the Ubuntu stable PPA, Snap, or Flathub, with current commands and notes for choosing a package source.

How to Find and Remove Duplicate Files on Linux With FSlint

How to Find and Remove Duplicate Files on Linux With FSlint

Use FSlint to scan selected Linux folders, review duplicate groups, and safely delete redundant files or learn when hard-link merging is appropriate.

How to Install SABnzbd on Linux and Configure It

How to Install SABnzbd on Linux and Configure It

Install SABnzbd on Ubuntu or Debian, or run it in Docker on another Linux host. Then open the web interface and configure your provider and download folders.

How to Install the Paper GTK Theme on Linux

How to Install the Paper GTK Theme on Linux

Install the Paper GTK theme from supported Linux repositories, enable it for GTK apps in GNOME Tweaks, and see what the legacy theme can and cannot change.

How to Install and Set Up Plex on OpenMediaVault with Compose

How to Install and Set Up Plex on OpenMediaVault with Compose

The old OpenMediaVault Plex plugin is archived. Set up Plex on OMV 8 with OMV-Extras, the Compose plugin, persistent storage, and Plex’s official container.

How to Clean and Speed Up Ubuntu Safely

How to Clean and Speed Up Ubuntu Safely

Clean and speed up Ubuntu with safe APT cleanup, storage checks, and startup controls that help free space and troubleshoot a sluggish desktop.

How to Install the Hiri Email Client on Linux

How to Install the Hiri Email Client on Linux

Install Hiri on Linux with its Snap package or official tarball, add a desktop launcher, and check supported accounts plus a warning about Hiri’s old Snap release.

How to Get System Specifications for a Linux PC

How to Get System Specifications for a Linux PC

Use Fastfetch and built-in Linux commands to check your distro, kernel, CPU, memory, graphics, storage, and connected devices, then save a clear report.