Максимально возможное сжатие для больших видеофайлов с использованием FFmpeg

354
user938339

Я был очарован копией «The Emoji Movie», сжатой до 45 мегабайт, и мне было интересно, как мне добиться такого сжатия для очень больших фильмов. Конечно, если бы можно было сохранить некоторую часть качества, это было бы прекрасно, но я хочу добиться минимального сжатия большого файла.

0
Привет, это было доведено до нашего сведения, что у нас могут возникнуть проблемы с вашими ссылками, вашим вопросом и ответом на него, даже без него. Я их отредактировал. Journeyman Geek 6 лет назад 0

1 ответ на вопрос

2
gronostaj

Я запустил MediaInfo для вашего видео, и вот что он сказал:

General Complete name : C:\...\c3lwe9.mp4 Format : MPEG-4 Format profile : Base Media / Version 2 Codec ID : mp42 (isom/iso2/avc1/mp41) File size : 45.0 MiB Duration : 1h 26mn Overall bit rate : 72.9 Kbps Movie name : The.Emoji.Movie.2017.720p.BRRip.850MB.MkvCage Encoded date : UTC 2018-02-16 12:32:47 Tagged date : UTC 2018-02-16 12:32:47 Writing application : HandBrake 1.0.7 2017040900  Video ID : 1 Format : AVC Format/Info : Advanced Video Codec Format profile : Main@L4 Format settings, CABAC : Yes Format settings, ReFrames : 4 frames Codec ID : avc1 Codec ID/Info : Advanced Video Coding Duration : 1h 26mn Bit rate : 38.1 Kbps Width : 300 pixels Height : 128 pixels Display aspect ratio : 2.35:1 Frame rate mode : Constant Frame rate : 12.000 fps Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.083 Stream size : 23.5 MiB (52%) Writing library : x264 core 148 r2708 86b7198 Encoding settings : cabac=1 / ref=2 / deblock=1:0:0 / analyse=0x1:0x111 / me=hex / subme=6 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=4 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=120 / keyint_min=12 / scenecut=40 / intra_refresh=0 / rc_lookahead=30 / rc=crf / mbtree=1 / crf=34.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=20000 / vbv_bufsize=25000 / crf_max=0.0 / nal_hrd=none / filler=0 / ip_ratio=1.40 / aq=1:1.00 Encoded date : UTC 2018-02-16 12:32:47 Tagged date : UTC 2018-02-16 12:32:47 Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709  Audio ID : 2 Format : MPEG Audio Format version : Version 1 Format profile : Layer 3 Mode : Joint stereo Mode extension : MS Stereo Codec ID : 6B Duration : 1h 26mn Bit rate mode : Constant Bit rate : 32.0 Kbps Channel(s) : 2 channels Sampling rate : 48.0 KHz Compression mode : Lossy Stream size : 19.8 MiB (44%) Title : Stereo / Stereo Language : English Default : Yes Alternate group : 1 Encoded date : UTC 2018-02-16 12:32:47 Tagged date : UTC 2018-02-16 12:32:47 

Обратите внимание, что из 45,0 МБ видео занимает всего 23,5 МБ, а аудио - 19,8 МБ. Недостающие 1,7 МБ, вероятно, являются издержками контейнера. Таким образом, видео составляет примерно 52% файла, а аудио - 44%!

Это ключевая информация о видеопотоке:

Width : 300 pixels Height : 128 pixels Frame rate : 12.000 fps 

300x128 пикселей при 12 кадрах в секунду, то есть 460 800 пикселей в секунду. Видео FullHD-качества, вероятно, будет иметь разрешение 1920x820 при 25 кадрах в секунду, то есть 47,232,000 пикселей в секунду. Таким образом, вы можете получить 85-кратное сжатие, просто изменив размер видео до размера почтового штемпеля и уменьшив частоту кадров. Видеопоток составляет 23,5 МБ, поэтому оригинал составит около 2 ГБ - звучит довольно разумно.

Аудио также имеет очень низкий битрейт - 32 Кбит / с. Я бы посчитал приемлемыми 128 Кбит / с, что увеличило бы его размер в 4 раза, в результате чего аудиопоток занимал бы около 80 МБ пространства.

Похожие вопросы