
Что такое метод рипа Micro-720p? Я хочу рипнуть из 720p с помощью ffmpeg и libx264.
Пример информации о видео m720p (исходное видео мне не известно):
General
Complete name : D:\m720p.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 596 MiB
Duration : 1h 16mn
Overall bit rate mode : Variable
Overall bit rate : 1 096 Kbps
Encoded date : UTC 2013-02-05 23:44:15
Tagged date : UTC 2013-02-05 23:44:15
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings, CABAC : Yes
Format settings, ReFrames : 9 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 1h 16mn
Bit rate : 1 003 Kbps
Maximum bit rate : 3 982 Kbps
Width : 1 280 pixels
Height : 688 pixels
Display aspect ratio : 1.85:1
Frame rate mode : Constant
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.048
Stream size : 542 MiB (91%)
Writing library : x264 core 129 r2230 1cffe9f
Encoding settings : cabac=1 / ref=9 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=6 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=8 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=2pass / mbtree=1 / bitrate=1003 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.00
Encoded date : UTC 2013-02-05 23:44:15
Tagged date : UTC 2013-02-05 23:44:24
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 1h 16mn
Bit rate mode : Variable
Bit rate : 96.0 Kbps
Maximum bit rate : 130 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Compression mode : Lossy
Stream size : 52.2 MiB (9%)
Language : English
Encoded date : UTC 2013-02-05 23:44:22
Tagged date : UTC 2013-02-05 23:44:24
решение1
Slhck прав, что Micro-720p — это тип релиза какой-то пиратской киностудии.
AFAIK, эта команда использует некоторые настройки кодирования x264 для архивирования низких битрейтов с приемлемым качеством. Вы можете получить то, что они использовали, из этой строки
Encoding settings : cabac=1 / ref=9 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=6 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=8 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=2pass / mbtree=1 / bitrate=1003 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.00
Наиболее важные настройки для низких скоростей передачи данных: ref=9 subme=7 bframes=8
и деблокирование можно изменить с помощью -tune film|animation|grain
Кстати, если вы хотите перекодировать аудио в aac с помощью ffmpeg, вам следует использовать lib_fdkaac, гораздо лучший кодек, чем libfaac. Просто попробуйте получить/скомпилировать новый ffmpeg с помощью lib_fdcaac.
Вы можете попробовать экстремальные настройки с
ffmpeg -i 720p.mkv \
-c:v libx264 -crf 22 -preset slower -x264opts subme=11:ref=16:bframes=16 -tune film \
-c:a libfdk_aac -ac 2 -flags +qscale -global_quality 2 -afterburner 1 \
m720p.mp4
Я знаю, что это даст неплохие результаты, но скорость передачи видео составит около 1400~1600 Кбит/с.
решение2
Думаю, я в конце концов узнал, откуда взялся этот термин — этопиратский тип выпуска фильма. Он описывает фильм с разрешением 720p (то есть, с разрешением 1280⨉720 пикселей), но с более низкой скоростью передачи данных, чем обычно требуется.
Это действительно не ракетостроение. Рассчитывая по этим рекомендациям, обычный битрейт для рипа Blu-ray 720p составит около 4,5 Мбит/с. Одингид по сценам, который я нашелтакже использует 4 Мбит/с для кодирования x264. Таким образом, чтобы получить "микро" или "мини" 720p rip, вам нужно указать более низкий битрейт.
Тымогсделайте что-то вроде этого:
ffmpeg -i in.mp4 -c:v libx264 -b:v 1M -c:a libfaac -q:a 100 out.mp4
К сожалению, режим кодирования с постоянным битрейтом по умолчанию в x264 считается довольно плохим с точки зрения качества. В идеале вам следует использовать двухпроходное кодирование, если у вас есть время. Вот пример с 1 Мбит/с:
ffmpeg -y -i in.mp4 -c:v libx264 -preset slow -b:v 1M -pass 1 -an -f mp4 /dev/null
ffmpeg -i in.mp4 -c:v libx264 -preset slow -b:v 1M -pass 2 -c:a libfaac -q:a 100 out.mp4
Вы можете изменить предустановку с slow
на ultraslow
, или в обратном направлении на medium
, fast
, ultrafast
. Выбор более медленной предустановки дает вам лучшее сжатие за счет более длительного ожидания. Лучшее сжатие означает, что видео будет выглядеть лучше при том же размере файла.
Обратите внимание: если исходный файл уже содержит допустимый аудиопоток для MP4 (обычно аудио AAC или MP3), то вы можете пропустить эту -c:a libfaac -q:a 100
часть и просто скопировать битовый поток с расширением -c:a copy
.