avcut mit Hardwaretranscodierung #14
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Das framegenaue Schneiden mit avcut ist sehr rechenintensiv. Da kann das Schneiden eines HD-Films auf der DS716+ schon mal 20 Minuten dauern. Da avcut auf ffmpeg aufbaut, wäre es hier noch das Ziel, dass das zugrundeliegende ffmpeg die Hardwaretranskodierung der DSen nutzen kann (Intel Quick Sync Video / vaapi). Das sollte die Schnittgeschwindigkeit signifikant erhöhen.
(Die Qualität der Schnitte wird man erst in einem Livetest prüfen können.)
JensB hat hier [https://github.com/jensb89/avcut/blob/master/HOWTO_Compile_for_Synology_NAS.MD] schon eine schöne grundlegende Anleitung zum Bauen eines statisch gelinkten avcut geschrieben. Das muss um nachfolgende Schritte ergänzt werden. Auf Crosskompilierung kann in diesem Fall verzichtet werden (betrifft nur x84_64).
Zunächst benötig man die Intel-Treiber.
Entweder so:
In CentOS 7.1 64 bit (reicht eine VM) Intel Media Server Studio für Linux installieren [http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/quicksync-video-ffmpeg-install-valid.pdf]
Oder man greift auf die vorgefertigte Lösung:
mfx_dispatch von lu-zero [https://github.com/lu-zero/mfx_dispatch]
Dann ==>
ffmpeg mit den zusätzlichen Parametern
“--enable –libmfx –enable-nonfree”
bauen [https://trac.ffmpeg.org/wiki/HWAccelIntro#IntelQSV]
, avcut-Sourcen laden und in avcut.c die Zeile
"encoder = avcodec_find_encoder(dec_cctx->codec_id);"
mit der Zeile
"encoder = avcodec_find_encoder_by_name("h264_qsv");"
ersetzen; avcut bauen
Der schnellste Weg wird wahrscheinlich darin bestehen, ein dynamisch gelinktes avcut und ffmpeg/libav mit vaapi-Support in einem Dockercontainer (ubuntu???) zu packen.