พื้นหลัง
FFmpeg รองรับการเข้ารหัส HEVC / H.265 ตั้งแต่ 2014-2-12 ด้วย libx265 ตอนนี้คุณสามารถใช้ ffmpeg โดยตรงเพื่อเข้ารหัส HEVC หรือใช้ตัวเข้ารหัสอื่นจากนั้นทำการ mux ด้วยตนเองลงใน. mp4, .mov หรือ. mkv โดยใช้ FFmpeg
ตัวเข้ารหัสที่มี
ตัวเข้ารหัส H.265 / HEVC ปัจจุบันคือ:
แนะนำให้ใช้ MulticoreWare และ DivX เท่านั้นเนื่องจากเวลาในการพัฒนาและความน่าเชื่อถือ
สอง x265
ความสับสนอย่างหนึ่งคือว่ามีสองโครงการอิสระทั้งสองชื่อ "x265" โดยนักศึกษาวิทยาลัยจีนและตายจริงและอีกโครงการหนึ่งโดย บริษัท การค้าที่เรียกว่า MulticoreWare ถึงแม้ว่าอดีตจะเริ่มต้นก่อน แต่ตอนนี้แทบจะตายไปแล้วและสิ่งที่อยู่เบื้องหลังนั้นกำลังอยู่ในระหว่างการพัฒนาและได้รับการรับรองโดย VideoLAN (ผู้พัฒนา x264)
เส้นเวลาของการสนับสนุนการเข้ารหัส FFmpeg HEVC
- 2013/10/12 .mov สนับสนุน muxing
53f903b
เพิ่มเข้ามาใน
- 2014/02/12 libx265
bb6b173
เข้ารหัสเพิ่มการสนับสนุนใน
- 2014-03-09 สนับสนุน Matroska muxing ที่สมบูรณ์ยิ่งขึ้นสำหรับ HEVC ที่เพิ่มเข้า
38aee64
มา
- 2014-03-09 .ovov muxing และการรองรับ muxing ใหม่ที่สมบูรณ์
9563e67
ยิ่งขึ้น
TL; DR
อย่างไรก็ตามนี่เป็นชุดของความเป็นไปได้ในปัจจุบันทั้งหมดของการเข้ารหัส HEVC ตามคำแนะนำของฉัน:
ใช้ MulticoreWare libx265 โดยตรงกับ FFmpeg โดยตรง ซึ่งหมายความว่าด้วย Zeranoe build ล่าสุดที่คุณสามารถทำได้:
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
หมายเหตุ: FFmpeg สร้างใหม่กว่า 2014-03-09 อนุญาตให้คุณ mux HEVC เป็นไฟล์. mp4 ตอนนี้ (ส่ง 9563e67):
ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mp4
คุณยังสามารถผสมมันใน Matroska (.mkv):
ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mkv
การใช้แบบสแตนด์อโลน MulticoreWare x265 แล้ว mux แฟ้มผลกับ FFmpeg หรือmp4box สิ่งนี้จะทำงานกับ FFmpeg รุ่นเก่าที่ไม่มีการสนับสนุน 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
ขอบคุณ @Duvrai
ใช้ DivX HEVC Encoder แล้วจึงรวมมัน
วิธีการใช้งานนั้นคล้ายกับการใช้ x265 แบบสแตนด์อโลน (ดูด้านบน)
อัปเดต: FFmpeg มีการสนับสนุนการเข้ารหัส HEVC โดยใช้ MulticoreWare libx265 ทันที
อัปเดต 2: FFmpeg ตอนนี้รองรับ muxing HEVC ลงใน mp4 และ mov แล้ว
crf=25
แสดงให้เห็นถึงคำสั่งตัวอย่างต่อไปนี้คือคำแนะนำที่ CRF: slhck.info/articles/crf