Größte mögliche Komprimierung für große Videodateien mit FFmpeg

390
user938339

Ich war fasziniert von einer auf 45 Megabyte komprimierten Ausgabe von "The Emoji Movie" und fragte mich, wie ich eine solche Komprimierung bei sehr großen Filmen erreichen könnte. Wenn ein Teil der Qualität erhalten bleiben könnte, wäre das natürlich reizvoll, aber ich möchte eine winzige Komprimierung für eine große Datei erreichen.

0
Hallo, es wurde uns darauf aufmerksam gemacht, dass wir für Ihre Links und Ihre Frage Probleme bekommen könnten, und die Antwort steht auch ohne sie alleine. Ich habe sie herausgeschnitten. Journeyman Geek vor 5 Jahren 0

1 Antwort auf die Frage

2
gronostaj

Ich habe MediaInfo für Ihr Video ausgeführt und hier ist Folgendes zu lesen :

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 

Beachten Sie, dass Videos von insgesamt 45,0 MiB nur 23,5 MiB und Audio 19,8 MiB ausmachen. Der fehlende 1,7-MiB-Wert liegt wahrscheinlich am Container-Overhead. Das Video macht also ungefähr 52% der Datei aus und das Audio 44%!

Dies sind die wichtigsten Informationen zum Videostream:

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

300 x 128 Pixel bei 12 Bildern pro Sekunde, also 460 800 Pixel pro Sekunde. Ein Video in FullHD-Qualität wäre wahrscheinlich 1920x820 bei 25 Bildern pro Sekunde, das sind 47.232.000 Pixel pro Sekunde. So erhalten Sie eine 85-fache Komprimierung, indem Sie die Größe des Videos auf die Größe eines Poststempels ändern und die Bildfrequenz reduzieren. Der Videostream ist 23,5 MiB, das Original wäre also etwa 2 GiB - klingt ziemlich vernünftig.

Audio hat auch eine dramatisch niedrige Bitrate von 32 Kbps. Ich würde 128 Kbps als akzeptabel betrachten, was seine Größe um das Vierfache erhöhen würde, so dass ein Audiostream etwa 80 MiB Speicherplatz benötigt.