乐闻世界logo
搜索文章和话题

How to use FFmpeg for video transcoding? What are the important encoding parameters?

2月18日 11:02

Video transcoding is one of the most commonly used features of FFmpeg, involving the conversion of encoders, decoders, and container formats.

Basic Transcoding Commands

bash
# Basic format conversion ffmpeg -i input.mp4 output.avi # Specify encoder ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4 # Specify encoding parameters ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4

Important Parameters

Video Encoding Parameters

  • -c:v: Specify video encoder (e.g., libx264, libvpx-vp9)
  • -crf: Constant Rate Factor (0-51, lower value means higher quality, default 23)
  • -preset: Encoding speed preset (ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow)
  • -b:v: Video bitrate (e.g., 2M, 1500k)

Audio Encoding Parameters

  • -c:a: Specify audio encoder (e.g., aac, mp3, libopus)
  • -b:a: Audio bitrate (e.g., 128k, 192k)
  • -ar: Sample rate (e.g., 44100, 48000)

Hardware Accelerated Transcoding

bash
# NVIDIA GPU acceleration ffmpeg -hwaccel cuda -i input.mp4 -c:v h264_nvenc output.mp4 # Intel QSV acceleration ffmpeg -hwaccel qsv -i input.mp4 -c:v h264_qsv output.mp4

Common Scenarios

  1. Reduce video quality to decrease file size
bash
ffmpeg -i input.mp4 -crf 28 -preset slow output.mp4
  1. Extract video stream
bash
ffmpeg -i input.mp4 -an -c:v copy output.mp4
  1. Adjust resolution
bash
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4

When transcoding, you need to select appropriate encoders and parameters based on the target platform and device to achieve a balance between quality and file size.

标签:FFmpeg