avcut mit Hardwaretranscodierung #14

Open
opened 2018-11-09 23:19:51 +00:00 by geimist · 1 comment
Owner

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

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
geimist added the
improvement
help wanted
SHELL
labels 2018-11-09 23:19:52 +00:00
Author
Owner

Der schnellste Weg wird wahrscheinlich darin bestehen, ein dynamisch gelinktes avcut und ffmpeg/libav mit vaapi-Support in einem Dockercontainer (ubuntu???) zu packen.

Der schnellste Weg wird wahrscheinlich darin bestehen, ein dynamisch gelinktes avcut und ffmpeg/libav mit vaapi-Support in einem Dockercontainer (ubuntu???) zu packen.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: geimist/synOTR#14
No description provided.