Dung lượng mỗi phút video FullHD cỡ 10-20Mb, chất lượng tốt, tuy nhiên để xem trên web thì rất tốn đường truyền, đặc biệt trên thiết bị di động, trong bài viết này tôi sẽ hướng dẫn các bạn nén video Full HD hoặc cao hơn bằng thư viện ffmpeg và chuẩn nén H265.

H264H265
Advanced Video EncodingHigh Effieciency Encoding
Năm ra đời 2003Năm ra đời 2013
Phù hợp nén HD, Full HDPhù hợp nén FullHD, 2K, 4K video
Tỷ lệ nén tốtTỷ lệ nén rất tốt, size nhỏ hơn H264 cỡ 8-9/10
Tốc độ nén tốtTốc độ nén chậm hơn. Nên sử dụng card đồ hoạ rời Nvidia tăng tốc rất nhiều

Cách cài đặt

  1. Cài đặt HomeBrew
  2. Trong terminal, gõ brew install ffmpeg
  3. Sử dụng trình editor nano để tạo ra file bash nano /usr/local/bin/v265
  4. Paste nội dung sau đây vào file bash script v265
    #!/bin/bash
    if [ -z "$1" ]; then
        echo "You must input video file name"
        exit
    fi
    if [ -f $1 ]; then
        output="$(echo $1 | sed 's/\.[^.]*$//')"
        ffmpeg -i $1 -c:v libx265 -x265-params crf=28 -tag:v hvc1 -c:a aac -b:a 64k "$output-265.mp4"
    else
        echo "File $1 does not exist"
    fi
  5. Cấu hình để file này có thể execute được chmod +r /usr/local/bin/v265
  6. Giờ thì chúng ta có thể nén file mp4 bằng v265 script rồi
    v265 your_video.mp4

     

Chú ý v265 chỉ dùng CPU để nén video nên tốc độ nén sẽ chậm. Muốn có tốc độ cao hơn hãy sử dụng Nvidia, cần phải CUDA và lib CUDA cho ffmpeg và cần card mạnh nhé.

Kết quả nén

  • File ban đầu FullHD, 6 phút:44 giây, kích thước 67.8Mb
  • Nén bằng H264 11.1Mb, CRF=28 (mặc định)
  • Nén bằng H265  8Mb, CRF=28 (mặc định)