Latar Belakang
FFmpeg mendukung penyandian HEVC / H.265 sejak 2014-2-12 dengan libx265. Sekarang Anda dapat menggunakan ffmpeg secara langsung untuk menyandikan HEVC atau menggunakan enkoder lain lalu secara manual mux itu menjadi .mp4, .mov, atau .mkv menggunakan FFmpeg.
Encoders yang tersedia
Enkoder H.265 / HEVC saat ini adalah:
Hanya MulticoreWare dan DivX yang disarankan karena waktu pengembangan dan keandalannya.
Dua x265
Satu kebingungan adalah bahwa ada dua proyek independen yang keduanya bernama "x265", satu oleh seorang mahasiswa Cina dan praktis sudah mati, dan yang lainnya oleh perusahaan komersial bernama MulticoreWare. Meskipun yang pertama dimulai lebih dulu, secara praktis sudah mati sekarang, dan yang terakhir sedang dalam pengembangan aktif dan didukung oleh VideoLAN (pengembang x264).
Garis Waktu Dukungan Encoding FFmpeg HEVC
- 2013-10-12 .mov dukungan muxing ditambahkan
53f903b
.
- Dukungan penyandian libx265 2014-02-12 ditambahkan
bb6b173
.
- 2014-03-09 Dukungan muxing Matroska yang lebih lengkap untuk HEVC ditambahkan
38aee64
.
- 2014-03-09 Lebih lengkap .mov dan .mp4 dukungan muxing baru ditambahkan
9563e67
.
tl; dr
Bagaimanapun, ini adalah set lengkap kemungkinan saat ini pengkodean HEVC dalam rangka rekomendasi saya:
Langsung menggunakan MulticoreWare libx265 dengan FFmpeg. Ini berarti dengan Zeranoe build terbaru Anda sekarang dapat melakukan ini:
ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mov
# With audio
ffmpeg -i INPUT -c:v libx265 -c:a copy -x265-params crf=25 OUT.mov
Catatan: FFmpeg build yang lebih baru dari 2014-03-09 memungkinkan Anda untuk mux HEVC ke file .mp4 sekarang (komit 9563e67):
ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mp4
Anda juga dapat mux di Matroska (.mkv):
ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mkv
Menggunakan MulticoreWare x265 mandiri dan kemudian mux file yang dihasilkan dengan FFmpeg atau MP4Box . Ini akan berfungsi dengan FFmpeg build lama yang tidak memiliki dukungan libx265.
# Decode input using FFmpeg and encode using x265 using pipe
ffmpeg -i INPUT -f yuv4mpegpipe -pix_fmt yuv420p - | \
x265 --y4m -o encoded.265 -
# Mux the resulting encoded .265 file into an .mp4 or .mov
# Using ffmpeg: only works with newer builds that support muxing HEVC
# Muxing to .mp4 supported since 03-09-2014
ffmpeg -i encoded.265 -c copy out.mp4
# With audio
ffmpeg -i encoded.265 -i INPUT -map 0 -map 1:a -c copy out.mp4
# Using MP4Box
MP4Box -add raw.265 out.mp4
# With audio
MP4Box -add {INPUT}#audio -add raw.265 out.mp4
Terima kasih untuk @Duvrai.
Menggunakan DivX HEVC Encoder dan kemudian mux.
Cara menggunakannya mirip dengan menggunakan x265 mandiri (lihat di atas).
Pembaruan: FFmpeg memiliki dukungan pengkodean HEVC menggunakan libx265 MulticoreWare sekarang.
Pembaruan 2: FFmpeg sekarang memiliki dukungan untuk muxing HEVC ke mp4 DAN mov sekarang.
crf=25
diwakilinya dalam contoh perintah, berikut ini adalah panduan CRF: slhck.info/articles/crf-c:v libx265
sebagaimana adanya, contoh-contoh di atas keluaran menggunakan x264. Untuk kejelasan,ffmpeg -i INPUT -c:a copy -x265-params crf=2 OUTPUT_h265.mp4
dikodekan dengan x264, tetapiffmpeg -i INPUT -c:v libx265 -c:a copy -x265-params crf=2 OUTPUT_h265.mp4
dikodekan dengan x265.ffmpeg menambahkan x265 encoding pada 12 Februari 2014, dan dukungan wadah mp4 pada 9 Maret:
catatan:
-c:a copy
(atau mengganticopy
denganaac
,libfdk_aac
ataulibfaac
- memesan berdasarkan kualitas)--enable-libx265
(dan--enable-libfdk-aac
atau--enable-libfaac
jika perlu)sumber
-pix_fmt yuv420p
sebelum-c:v
, hasilnya baik-baik saja.Coba encoder divx saat ini. Ini memiliki dukungan bawaan untuk h265: http://www.divx.com/
(seperti yang dilaporkan http://jkdigital.de/h265-hevc-divx-praxisbericht/ )
sumber