ฉันจะได้รับ MP4 ที่มีคุณภาพสูง / ต่ำเช่นกลุ่ม LOL ได้อย่างไร


20

กลุ่มที่วางจำหน่าย LOL ทำงานได้อย่างยอดเยี่ยมในการเข้ารหัสการเผยแพร่ของพวกเขาใน The Vampire Diaries (ในรายการอื่น ๆ เช่นฉันพบแม่ของคุณอัตราบิตจะสูงกว่าดังนั้นดูเหมือนจะไม่ได้ผล)

ประมาณ 200 MB ต่อไฟล์ MP4 ประมาณ 45 นาทีคุณภาพที่น่าทึ่งเมื่อพิจารณา

ฉันแค่สงสัยว่าการตั้งค่าและซอฟต์แวร์ใดที่พวกเขาใช้ ฉันพยายามรับข้อมูลจากไฟล์เหล่านี้โดยใช้ MediaInfo จากนั้นใช้การตั้งค่าใน HandBrake แต่ฉันไม่ประสบความสำเร็จจริงๆ

มีใครช่วยได้ไหม ฉันไม่มีความรู้เกี่ยวกับการเข้ารหัส / การบีบอัดมากนัก

คำตอบ:


28

แนวทางในการเข้ารหัสวิดีโอ (ละเมิดลิขสิทธิ์) เรียกว่า "คู่มือนำเที่ยว" พวกเขาลงนามโดยกลุ่มเผยแพร่ต่างๆที่จะทำให้แน่ใจว่าวิดีโอของพวกเขาสอดคล้องกับคำแนะนำ LOL เป็นหนึ่งในกลุ่มเหล่านี้

คุณสามารถค้นหารายการคู่มือฉากscenerules.org มาตรฐานที่คุณกำลังมองหาคือ - ถ้าฉันไม่เข้าใจผิด - มาตรฐานการปล่อยทีวี SD x264สมมติว่าวิดีโอของคุณคือ 1280 × 780 หากคุณมีวิดีโอ HD คุณอาจไม่ได้รับคุณภาพที่ดีจริงๆที่ 200 MB เป็นเวลา 45 นาที นั่นแปลว่าประมาณ 600 kBit / s และน่าจะเพียงพอสำหรับ 720p

ในฐานะที่เป็นเครื่องมือสำหรับการเข้ารหัสคุณจะได้รับสวยไกลกับFFmpeg (ซึ่ง Handbrake อยู่บนพื้นฐาน) ผู้ร้ายเพียงคนเดียวคือการห้ามใช้ FFmpeg และ FAAC audio สำหรับคู่มือซีนนั้น แต่หากคุณไม่ได้มีส่วนร่วมจริงๆ

หากคุณไม่เคยมีประสบการณ์การเข้ารหัสวิดีโอมาก่อนและคำหลักเหล่านี้ไม่ได้มีความหมายอะไรกับคุณโปรดดูบทความบล็อก / คำถามผู้ใช้ขั้นสูงต่อไปนี้:

โดยทั่วไปกฎบอกว่าคุณต้องใช้ตัวเข้ารหัส x264 กับการตั้งค่าคุณภาพของอัตราคงที่ สิ่งที่แตกต่างจากการตั้งค่าบิตเรตคงที่คือ: คุณสามารถตั้งค่า CRF ให้มี x264 เข้ารหัสวิดีโอด้วยคุณภาพคงที่

ระดับ CRF โดยทั่วไปอยู่ระหว่าง 18 ถึง 28 และกลุ่มปล่อยแนะนำ 19–20 สำหรับการเข้ารหัสวัสดุคุณภาพสูงที่บีบอัดได้ง่าย คุณจะไม่ทราบขนาดไฟล์สุดท้ายล่วงหน้าเมื่อทำเช่นนั้น แต่นั่นเป็นจุดรวมของการเข้ารหัส CRF: คุณไม่สนใจขนาดไฟล์จริง - คุณแค่ต้องการคุณภาพที่ดี

เมื่อคุณตั้งค่าffmpegและคุณพร้อมวิดีโออินพุตแล้วการเข้ารหัสนั้นค่อนข้างง่าย อย่างไรก็ตามโปรดทราบว่าวิดีโอต้นฉบับของคุณจะต้องมีคุณภาพสูงมิฉะนั้นการเข้ารหัสใหม่จะทำให้คุณภาพของวิดีโอแย่ลงเท่านั้น

นี่คือพารามิเตอร์ที่สำคัญ:

  • วิดีโอ x264 ด้วย:
    • CRF 19–20
    • slow โปรไฟล์ (ประสิทธิภาพการบีบอัดที่ดีกว่าโดยใช้เวลาในการเข้ารหัส)
    • H.264 ระดับ 3.1 ซึ่งกำหนดข้อ จำกัด เล็กน้อย
    • การลดขนาดจะต้องทำกับ resizer อื่น ๆ นอกเหนือจาก bicubic (ซึ่งเป็นค่าเริ่มต้น FFmpeg) ตัวอย่างเช่นสามารถใช้ Lanczos ได้
    • การtuneตั้งค่าสำหรับแหล่งที่มา (เช่นfilmเนื้อหาที่เหมือนภาพยนตร์)
  • เสียง AAC ด้วย:
    • การเข้ารหัสอัตราบิตผันแปร
    • อัตราบิตระหว่าง 96 และ 160 kBit / s

ในที่ffmpegนี้แปลต่อไปนี้:

ffmpeg -i input.mp4 \
-c:v libx264 -crf 19 -level 3.1 -preset slow -tune film \
-filter:v scale=-1:720 -sws_flags lanczos \
-c:a libfdk_aac -vbr 5 \
output.mp4

ใน FFmpeg ตัวเลือกของคุณสำหรับการเข้ารหัส AAC นั้นค่อนข้าง จำกัด ดูที่นี่สำหรับตัวเลือก AAC ของคุณและดูคู่มือการเข้ารหัส FFmpeg และ AACสำหรับข้อมูลเพิ่มเติม

หากวิดีโอของคุณมีขนาดใหญ่เกินไปคุณอาจปรับ CRF ค่า± 6 จะส่งผลให้อัตราบิตครึ่ง / สองเท่าดังนั้นหากคุณเริ่มต้นด้วย 19 และไปที่ 25 คุณจะจบลงด้วยบิตเรตครึ่งหนึ่ง กฎของฉากไม่อนุญาตให้ CRF สูงกว่า 24 แต่คุณอาจไม่สนใจ


2

ไม่สามารถพูดกับกลุ่มรุ่นที่คุณกล่าวถึงเนื่องจากคุณไม่ได้โพสต์ mediainfo แต่นี่คือคำแนะนำในการสร้างการเข้ารหัสแบบกะทัดรัดซึ่งหมายถึงการสร้างสมดุล / คุณภาพที่ดี

คุณควรเริ่มต้นด้วย HandBrake และแหล่งข้อมูลที่ดีที่สุด ในส่วนแหล่งที่มาให้เลือกเซ็กเมนต์สั้น ๆ แต่ยากที่จะเข้ารหัส (ทั้งการกระทำและรายละเอียดที่ดี) ในปลายทางให้เลือกlibmkv ในแท็บวิดีโอให้ยกเลิกการเลือกใช้ตัวเลือกขั้นสูง (คุณยังสามารถเพิ่มตัวเลือกเหล่านั้นได้ในแต่ละกรณีในการตั้งค่าเพิ่มเติม ) เลือก--rc=crfratecontrol เลือก--presetคอมพิวเตอร์ของคุณสามารถรับ ( slowerหรือveryslow) สูงสุด--tuneที่ตรงกับที่มา ( filmหรือanimationควรครอบคลุม) และ ตั้งค่าโปรไฟล์และระดับ/auto autoจากนั้นเล่นด้วยความละเอียด (เฉพาะในกรณีที่แหล่งสัญญาณเป็น HD ในการตั้งค่ารูปภาพตั้งค่า anamorphic ให้หลวมและแปรเปลี่ยนหนึ่งในแกนจากความละเอียดสูงและลดลงถัดไป) และ--crfจนกว่าคุณจะพบว่าคุณภาพและบิตเรตที่ดีสำหรับส่วนสั้น ๆ ของคุณ โปรดทราบว่า crf นั้นเชื่อมโยงกับการตั้งค่าการเข้ารหัสที่เหลือของคุณซึ่งเป็นเหตุผลว่าทำไมจึงควรเป็นการตั้งค่าวิดีโอครั้งสุดท้ายที่คุณเปลี่ยน ในAudioไปกับVorbisที่160kbps (ซึ่งจะใช้ AoTuV -q5เพื่อให้เกิดความโปร่งใสโดยไม่ต้องทำการจูนต่อไป) ในแท็บอื่น ๆตรวจสอบว่าทุกสิ่งที่คุณอาจจำเป็นต้องได้รับการเก็บรักษาไว้ (เครื่องหมายบทแทร็คคำบรรยายแทร็กข้อมูลเมตา ฯลฯ ) เมื่อคุณพอใจคุณสามารถใช้การตั้งค่าเหล่านี้เพื่อเข้ารหัสตอนที่เหลือ บิตเรตเฉลี่ยควรจบลงต่ำกว่าในส่วนที่ยาก เมื่อคุณมั่นใจในการตั้งค่าของคุณคุณสามารถใช้มันเพื่อเข้ารหัสทั้งฤดูกาล

วิธีที่ขั้นตอนข้างต้นปรับปรุงความกะทัดรัด: libmkv ให้คุณเข้าถึงตัวแปลงสัญญาณเพิ่มเติม, โปรไฟล์และรุ่นเป็นอัตโนมัติหมายความว่าจะไม่มีข้อ จำกัด ในการเล่นเพื่อหยุดการเข้ารหัส เซ็กเมนต์สั้น ๆ (ไม่กี่วินาที) ให้เวลาคุณมากขึ้นในการปรับแต่งสิ่งต่างๆและดูผลลัพธ์ Tune จะปรับคุณภาพของภาพที่ได้จาก psychovisual (ที่รับรู้) ให้เหมาะกับแหล่งที่มา ค่าที่ตั้งล่วงหน้าที่สูงขึ้นช่วยเพิ่มความกะทัดรัดในเวลาเข้ารหัส (ซึ่งอาจไม่สามารถสังเกตได้ในส่วนที่ยากของคุณ แต่จะปรับปรุงบิตเรตในฉากอื่น ๆ ส่วนใหญ่) CRF ratecontrol หมายความว่าการเข้ารหัสของคุณจะเปลี่ยนบิตเรตเพื่อกำหนดเป้าหมายคุณภาพที่กำหนดโดยตอนที่มีความต้องการมากขึ้นจะมีพื้นที่มากขึ้น

ตัวกรอง denoising อาจมีประโยชน์มากหากคุณรักษาความละเอียดดั้งเดิมไว้ คุณจะต้องการให้แสงสว่างเพราะเป้าหมายไม่ใช่เพื่อกำจัดข้อบกพร่องที่รับรู้ได้ แต่เพื่อปรับปรุงความสามารถในการบีบอัดโดยไม่ลดคุณภาพลงอย่างเห็นได้ชัด นี่คือแนวทางในการใช้ HQDN3D denoiser ของ HandBrakeซึ่งอยู่ระหว่าง x264's --nrและdenoisers ที่ทันสมัยเพื่อคุณภาพ


2

FFmpeg TV

จากคำตอบslhckฉันสร้างโซลูชัน Python ง่าย ๆ เพื่อเรียกffmpegพารามิเตอร์ที่เหมาะสม ขึ้นอยู่กับรุ่นล่าสุดscenerules 2016 มาตรฐานทีวี

python3 ffmpeg-tv.py input.mp4 output.mkv

อธิบายไว้คุณสามารถค้นหาพารามิเตอร์ทั้งหมดและคำอธิบายสั้น ๆ เกี่ยวกับสาเหตุที่พารามิเตอร์ถูกตั้งค่าด้วยวิธีนี้โดยค่าเริ่มต้น

  # 1.3) Providers which downscale 1080i to 720p (e.g. BellTV) are not allowed.
  # 5.10) Resized video must be within 0.5% of the original aspect ratio.
  scale="-1:-1" # <width>:<height>; -1 maintain ratio.

  # 4.1) Video must be H.264/MPEG-4 AVC encoded with x264 8-bit.
  video_encoder="libx264"

  # 4.4) Constant Rate Factor (--crf) must be used.
  # 4.4.1) CRF values below 18 and above 23 are never allowed.
  # http://slhck.info/video/2017/02/24/crf-guide.html
  # (lossless) 0 <- (better) 23 <- (worst) 51
  # ┌─────────────────┬───────┬───────────────────────────────────────────┐
  # │ Compressibility      │  CRF    │ General Examples                                      │
  # ├─────────────────┼───────┼───────────────────────────────────────────┤
  # │ High                 │ 18-19   │ Scripted, Talk Shows, Animation, Stand-Up             │
  # │ Medium               │ 20-21   │ Documentary, Reality, Variety, Poker                  │
  # │ Low                  │ 22-23   │ Sports, Awards, Live Events                           │
  # └─────────────────┴───────┴───────────────────────────────────────────┘
  crf="19"

  # 4.6) Settings cannot go below what is specified by preset (--preset) 'slow'.
  preset="slow"

  # 4.7) Level (--level) must be '4.1'.
  level="4.1"

  # 6.4) Only sharp resizers, such as Spline36Resize, BlackmanResize or LanczosResize/Lanczos4Resize,
  # must be used.
  # 6.4.1) Simple resizers, such as Bicubic, PointResize or Simple, are not allowed. 
  resizer="lanczos"

  # 4.17) Optional tuning (--tune) parameters allowed are: 'film', 'grain' or 'animation'. 
  # /superuser/564402/explanation-of-x264-tune
  # film – intended for high-bitrate/high-quality movie content. Lower deblocking is used here.
  tune="film"

  # 8.1) Audio must be in the original format provided.
  # 8.1.1) Transcoding audio is not allowed.
  # 8.2) Multiple language audio tracks are allowed.
  # Since we cannot ensure that the external content is in an acceptable TV format, we'll recode
  # it into aac. We're just playing safe here.
  # 
  # FFmpeg supports two AAC-LC encoders (aac and libfdk_aac) and one HE-AAC (v1/2) encoder
  # (libfdk_aac). The license of libfdk_aac is not compatible with GPL, so the GPL does not permit
  # distribution of binaries containing incompatible code when GPL-licensed code is also included.
  # libfdk_aac is "non-free", and requires ffmpeg to be compiled manually.
  # Second best encoder is the native FFmpeg AAC encoder. (aac)
  audio_encoder="aac"

  # Audio quality (bit rate).
  # Use either VBR or CBR. VBR is the easiest.
  # https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_vbr
  # VBR: Target a quality, rather than a specific bit rate. 1 is lowest quality and 5 is highest
  # quality.
  # https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_cbr
  # http://wiki.hydrogenaud.io/index.php?title=Fraunhofer_FDK_AAC#Bitrate_Modes
  # CBR: kbps
  vbr="5"
  cbr=None

  # 8.2) Multiple language audio tracks are allowed.
  # 8.2.1) The default audio track must be the language intended for release (e.g. An English release
  # containing English, German and Russian audio tracks, must have the default flag set on the English
  # track).
  # https://trac.ffmpeg.org/wiki/Map
  # Include "all" inputs to the output: -map 0
  map="0"

ดูffmpeg-tv.pyสำหรับซอร์สโค้ดที่สมบูรณ์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.