Vraag


Acties:
  • 0 Henk 'm!

  • Turdie
  • Registratie: Maart 2006
  • Laatst online: 20-08-2024
Mijn vraag
Ik wil een aantal grote video bestanden verkleinen in grootte door ze te compressen dmv ffmpeg.
De bestanden zien er met ffprobe als volgt uit. Ik doe dit encoden op een vm in Azure met behoorlijk wat CPU en memory, maar het compressen met ffmpeg duurt erg lang.
ffprobe -i file.mp4 

ffprobe version 4.3.4-0+deb11u1 Copyright (c) 2007-2021 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr --extra-version=0+deb11u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.45.100
  Duration: 00:46:54.02, start: 0.000000, bitrate: 5133 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 4999 kb/s, 29.98 fps, 30 tbr, 90k tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 125 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
[FORMAT]
filename=file.mp4
nb_streams=2
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=0.000000
duration=2814.016000
size=1805800118
bit_rate=5133730
probe_score=100
TAG:major_brand=isom
TAG:minor_version=512
TAG:compatible_brands=isomiso2avc1mp41
TAG:encoder=Lavf58.45.100
[/FORMAT]



Relevante software en hardware die ik gebruik
Debian Azure VM

Wat ik al gevonden of geprobeerd heb
 ffmpeg -i input -c:v libx264 -preset ultrafast -qp 0 output.mkv 

Duurt ook erg lang

Beste antwoord (via Turdie op 14-07-2022 22:31)


  • DeTeraarist
  • Registratie: November 2000
  • Laatst online: 00:35

DeTeraarist

#Boots2Asses

Wat is erg lang en wat is behoorlijk wat memory en cpu?

Wat je hebt gevonden is een manier om een lossless video te maken. Dat klinkt leuk, maar is niet wat je wil, je wilt namelijk kleinere bestanden. Je voorbeeld lijkt uit de documentatie te komen. Onder de voorbeelden van lossless video's staat een waarschuwing:
Note that lossless output files will likely be huge, and most non-FFmpeg based players will not be able to decode lossless. Therefore, if compatibility or file size are an issue, you should not use lossless.
Dat komt onder andere door
-preset ultrafast

Dat bepaalt de compressie. Bij presets geldt de volgende regel: sneller is groter.

Ik zou beginnen met
ffmpeg -i input -c:v libx264 -crf 28 output.mkv

Als dat te langzaam is kun je twee dingen doen.
- De constant rate factor(crf) verhogen(= lagere bitrate en kleiner bestand, maar minder kwaliteit)
- Een preset toevoegen(= meer of minder compressie, sneller is groter)

Soms, als ik heel stil ben, kan ik de zon horen schijnen

Alle reacties


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • DeTeraarist
  • Registratie: November 2000
  • Laatst online: 00:35

DeTeraarist

#Boots2Asses

Wat is erg lang en wat is behoorlijk wat memory en cpu?

Wat je hebt gevonden is een manier om een lossless video te maken. Dat klinkt leuk, maar is niet wat je wil, je wilt namelijk kleinere bestanden. Je voorbeeld lijkt uit de documentatie te komen. Onder de voorbeelden van lossless video's staat een waarschuwing:
Note that lossless output files will likely be huge, and most non-FFmpeg based players will not be able to decode lossless. Therefore, if compatibility or file size are an issue, you should not use lossless.
Dat komt onder andere door
-preset ultrafast

Dat bepaalt de compressie. Bij presets geldt de volgende regel: sneller is groter.

Ik zou beginnen met
ffmpeg -i input -c:v libx264 -crf 28 output.mkv

Als dat te langzaam is kun je twee dingen doen.
- De constant rate factor(crf) verhogen(= lagere bitrate en kleiner bestand, maar minder kwaliteit)
- Een preset toevoegen(= meer of minder compressie, sneller is groter)

Soms, als ik heel stil ben, kan ik de zon horen schijnen


Acties:
  • 0 Henk 'm!

  • schroevendraaier480
  • Registratie: April 2002
  • Laatst online: 17:37

schroevendraaier480

certified prutser

ik ben geen Azure held, maar kan je geen hardware GPU acceleratie inzetten op de machine? Dat scheelt voor transcoden een slok op een borrel.

wat nou router, gewoon een kroonsteentje!


Acties:
  • 0 Henk 'm!

  • Michael_OsGroot
  • Registratie: Maart 2020
  • Laatst online: 15-11-2022

Michael_OsGroot

Yes... Yes!

Waarom trouwens de keuze voor h264/x264?

Chebyshev said it, and I'll say it again; There's always a prime between n and 2n | De donkere gedaanten zijn bijzonder vlug ter been; Ze lopen op vier poten, en ze kijken heel gemeen


Acties:
  • 0 Henk 'm!

  • Turdie
  • Registratie: Maart 2006
  • Laatst online: 20-08-2024
schroevendraaier480 schreef op donderdag 14 juli 2022 @ 19:18:
ik ben geen Azure held, maar kan je geen hardware GPU acceleratie inzetten op de machine? Dat scheelt voor transcoden een slok op een borrel.
Die staat al aan.
Michael_OsGroot schreef op donderdag 14 juli 2022 @ 20:39:
Waarom trouwens de keuze voor h264/x264?
Dat is iets waar ik mee moet werken, de bron van de video bestanden is in dat formaat.

[ Voor 30% gewijzigd door Turdie op 14-07-2022 20:51 ]


Acties:
  • 0 Henk 'm!

  • hcQd
  • Registratie: September 2009
  • Nu online
Turdie schreef op donderdag 14 juli 2022 @ 20:48:
de bron van de video bestanden is in dat formaat.
Maar dan kun je nog steeds h.265 voor het doelbestand gebruiken, dat scheelt al gauw de helft qua grootte zonder aan kwaliteit in te boeten.

Acties:
  • 0 Henk 'm!

  • schroevendraaier480
  • Registratie: April 2002
  • Laatst online: 17:37

schroevendraaier480

certified prutser

Dan zou ik even checken of je in de syntax van ffmpeg de hardware versnelling goed hebt staan

https://trac.ffmpeg.org/wiki/HWAccelIntro

Nvidia: -c:v h264_nvenc
Intel: -c:v h264_qsv

Edit:
Overigens is mijn ervaring dat hw accell niet altijd de beste kwaliteit geeft, maar wel snel. Kwestie van smaak

[ Voor 23% gewijzigd door schroevendraaier480 op 14-07-2022 21:56 ]

wat nou router, gewoon een kroonsteentje!

Pagina: 1