Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
07.07.2020, 19:18:17

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
Statistiken
  • Beiträge insgesamt: 669274
  • Themen insgesamt: 54211
  • Heute online: 395
  • Am meisten online: 2287
  • (22.01.2020, 19:20:24)
Benutzer Online

Autor Thema:  Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?  (Gelesen 905 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Hi,

normalerweise habe ich bis heute Avidemux als AppImage verwendet. Dem AppImage fehlt die Untersützung von VA-API Dekodierung:
https://wiki.ubuntuusers.de/Avidemux/#AppImage

Da ich mit dem AppImage auch keinen Ton zu hören bekomme, habe ich es heute gewagt, und habe Avidemux zum einen selbst kompiliert nach dieser Anleitung...
https://avidemux.org/smif/index.php/topic,18642.msg86021.html#msg86021

...wobei ich mittlerweile die Version aus dem Masterzweig verwendet habe. Dazu musste ich noch folgende Befehle verwenden:
https://avidemux.org/smif/index.php/topic,18371.msg87089.html#msg87089

Daneben habe ich Avidemux inklusive Plugins auch mal aus dem PPA installiert:
https://wiki.ubuntuusers.de/Avidemux/#Fremdquellen

Meine CPU ist ein Core i7-6700 mit integrierter GPU, die Hardwarebeschleunigung unterstützen sollte:
Zitat
inxi -Fxzzz
System:
  Host: PC-Mint-2016 Kernel: 5.4.0-37-generic x86_64 bits: 64 compiler: gcc
  v: 7.5.0 Desktop: Cinnamon 4.4.8 Distro: Linux Mint 19.3 Tricia
  base: Ubuntu 18.04 bionic
Machine:
  Type: Desktop Mobo: ASUSTeK model: B150I PRO GAMING/AURA v: Rev X.0x
  serial: <filter> UEFI [Legacy]: American Megatrends v: 2606
  date: 02/22/2018
CPU:
  Topology: Quad Core model: Intel Core i7-6700 bits: 64 type: MT MCP
  arch: Skylake-S rev: 3 L2 cache: 8192 KiB
  flags: lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 54398
  Speed: 800 MHz min/max: 800/4000 MHz Core speeds (MHz): 1: 800 2: 800
  3: 800 4: 800 5: 800 6: 800 7: 800 8: 800
Graphics:
  Device-1: Intel HD Graphics 530 vendor: ASUSTeK driver: i915 v: kernel
  bus ID: 00:02.0
  Display: x11 server: X.Org 1.19.6 driver: modesetting unloaded: fbdev,vesa
  resolution: 3840x2160~30Hz
  OpenGL: renderer: Mesa DRI Intel HD Graphics 530 (Skylake GT2)
  v: 4.5 Mesa 19.2.8 direct render: Yes
Audio:
  Device-1: Intel 100 Series/C230 Series Family HD Audio
  vendor: ASUSTeK Sunrise Point-H driver: snd_hda_intel v: kernel
  bus ID: 00:1f.3
  Sound Server: ALSA v: k5.4.0-37-generic
Network:
  Device-1: Intel Ethernet I219-V vendor: ASUSTeK driver: e1000e v: 3.2.6-k
  port: f040 bus ID: 00:1f.6
  IF: enp0s31f6 state: up speed: 1000 Mbps duplex: full mac: <filter>
Drives:
  Local Storage: total: 2.05 TiB used: 520.08 GiB (24.7%)
  ID-1: /dev/nvme0n1 vendor: Samsung model: SSD 950 PRO 256GB
  size: 238.47 GiB
  ID-2: /dev/sda vendor: Crucial model: CT2000MX500SSD1 size: 1.82 TiB
Partition:
  ID-1: / size: 82.00 GiB used: 44.85 GiB (54.7%) fs: ext4
  dev: /dev/nvme0n1p1
  ID-2: /home size: 148.35 GiB used: 117.31 GiB (79.1%) fs: ext4
  dev: /dev/nvme0n1p3
  ID-3: swap-1 size: 3.81 GiB used: 512 KiB (0.0%) fs: swap
  dev: /dev/nvme0n1p2
Sensors:
  System Temperatures: cpu: 42.0 C mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 266 Uptime: 8h 16m Memory: 31.26 GiB used: 2.40 GiB (7.7%)
  Init: systemd runlevel: 5 Compilers: gcc: 7.5.0 Shell: bash v: 4.4.20
  inxi: 3.0.32
---

vainfo gibt folgendes aus:
Zitat
vainfo
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_1
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.1 (libva 2.1.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 2.1.0
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :   VAEntrypointVLD
      VAProfileMPEG2Simple            :   VAEntrypointEncSlice
      VAProfileMPEG2Main              :   VAEntrypointVLD
      VAProfileMPEG2Main              :   VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:   VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:   VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:   VAEntrypointEncSliceLP
      VAProfileH264ConstrainedBaseline:   VAEntrypointFEI
      VAProfileH264ConstrainedBaseline:   VAEntrypointStats
      VAProfileH264Main               :   VAEntrypointVLD
      VAProfileH264Main               :   VAEntrypointEncSlice
      VAProfileH264Main               :   VAEntrypointEncSliceLP
      VAProfileH264Main               :   VAEntrypointFEI
      VAProfileH264Main               :   VAEntrypointStats
      VAProfileH264High               :   VAEntrypointVLD
      VAProfileH264High               :   VAEntrypointEncSlice
      VAProfileH264High               :   VAEntrypointEncSliceLP
      VAProfileH264High               :   VAEntrypointFEI
      VAProfileH264High               :   VAEntrypointStats
      VAProfileH264MultiviewHigh      :   VAEntrypointVLD
      VAProfileH264MultiviewHigh      :   VAEntrypointEncSlice
      VAProfileH264StereoHigh         :   VAEntrypointVLD
      VAProfileH264StereoHigh         :   VAEntrypointEncSlice
      VAProfileVC1Simple              :   VAEntrypointVLD
      VAProfileVC1Main                :   VAEntrypointVLD
      VAProfileVC1Advanced            :   VAEntrypointVLD
      VAProfileNone                   :   VAEntrypointVideoProc
      VAProfileJPEGBaseline           :   VAEntrypointVLD
      VAProfileJPEGBaseline           :   VAEntrypointEncPicture
      VAProfileVP8Version0_3          :   VAEntrypointVLD
      VAProfileVP8Version0_3          :   VAEntrypointEncSlice
      VAProfileHEVCMain               :   VAEntrypointVLD
      VAProfileHEVCMain               :   VAEntrypointEncSlice

---

Zitat
VDPAU_DRIVER=va_gl vdpauinfo
spuckt folgendes aus:
Zitat
display: :0   screen: 0
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_1
libva info: va_openDriver() returns 0
API version: 1
Information string: OpenGL/VAAPI backend for VDPAU

Video surface:

name   width height types
-------------------------------------------
420     4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8
422     4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8
444     4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8

Decoder capabilities:

name                        level macbs width height
----------------------------------------------------
MPEG1                          --- not supported ---
MPEG2_SIMPLE                   --- not supported ---
MPEG2_MAIN                     --- not supported ---
H264_BASELINE                  51 16384  2048  2048
H264_MAIN                      51 16384  2048  2048
H264_HIGH                      51 16384  2048  2048
VC1_SIMPLE                     --- not supported ---
VC1_MAIN                       --- not supported ---
VC1_ADVANCED                   --- not supported ---
MPEG4_PART2_SP                 --- not supported ---
MPEG4_PART2_ASP                --- not supported ---
DIVX4_QMOBILE                  --- not supported ---
DIVX4_MOBILE                   --- not supported ---
DIVX4_HOME_THEATER             --- not supported ---
DIVX4_HD_1080P                 --- not supported ---
DIVX5_QMOBILE                  --- not supported ---
DIVX5_MOBILE                   --- not supported ---
DIVX5_HOME_THEATER             --- not supported ---
DIVX5_HD_1080P                 --- not supported ---
H264_CONSTRAINED_BASELINE      51 16384  2048  2048
H264_EXTENDED                  --- not supported ---
H264_PROGRESSIVE_HIGH          --- not supported ---
H264_CONSTRAINED_HIGH          --- not supported ---
H264_HIGH_444_PREDICTIVE       --- not supported ---
HEVC_MAIN                      --- not supported ---
HEVC_MAIN_10                   --- not supported ---
HEVC_MAIN_STILL                --- not supported ---
HEVC_MAIN_12                   --- not supported ---
HEVC_MAIN_444                  --- not supported ---

Output surface:

name              width height nat types
----------------------------------------------------
B8G8R8A8         16384 16384    y 
R8G8B8A8         16384 16384    y 
R10G10B10A2      16384 16384    y 
B10G10R10A2      16384 16384    y 
A8               16384 16384    y 

Bitmap surface:

name              width height
------------------------------
B8G8R8A8         16384 16384
R8G8B8A8         16384 16384
R10G10B10A2      16384 16384
B10G10R10A2      16384 16384
A8               16384 16384

Video mixer:

feature name                    sup
------------------------------------
DEINTERLACE_TEMPORAL             -
DEINTERLACE_TEMPORAL_SPATIAL     -
INVERSE_TELECINE                 -
NOISE_REDUCTION                  -
SHARPNESS                        -
LUMA_KEY                         -
HIGH QUALITY SCALING - L1        -
HIGH QUALITY SCALING - L2        -
HIGH QUALITY SCALING - L3        -
HIGH QUALITY SCALING - L4        -
HIGH QUALITY SCALING - L5        -
HIGH QUALITY SCALING - L6        -
HIGH QUALITY SCALING - L7        -
HIGH QUALITY SCALING - L8        -
HIGH QUALITY SCALING - L9        -

parameter name                  sup      min      max
-----------------------------------------------------
VIDEO_SURFACE_WIDTH              - 
VIDEO_SURFACE_HEIGHT             - 
CHROMA_TYPE                      - 
LAYERS                           - 

attribute name                  sup      min      max
-----------------------------------------------------
BACKGROUND_COLOR                 - 
CSC_MATRIX                       - 
NOISE_REDUCTION_LEVEL            - 
SHARPNESS_LEVEL                  - 
LUMA_KEY_MIN_LUMA                - 
LUMA_KEY_MAX_LUMA                - 

Nun habe ich eine TV-Aufnahme geschnitten und wollte das nun inkl. Hardwarebeschleunigung rendern.

Als Videocodec habe ich "Intel H264" verwendet, mit Einstellungen gemäß Anhang.

Ich hatte eigentlich gehofft oder erwartet, dass der Vorgang bei weitem nicht so lange dauern würde, wie wenn der Vorgang nur über die CPU läuft.

Der zu rendernde Film war genau 83 Minuten lang, der Render-Vorgang dauerte ziemlich exakt 64 Minuten.

Ich hatte da eher erwartet, dass der Vorgang vielleicht 30-40 Minuten dauert.

Ist die Dauer normal bei der eingesetzten CPU oder geht da noch mehr?

Muss ich evtl. anderen Videocodec und/oder andere Einstellungen wählen, damit der Vorgang nicht so lange dauert?

Hylli
« Letzte Änderung: 15.06.2020, 21:41:14 von hylli »

Re: Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?
« Antwort #1 am: 16.06.2020, 19:10:11 »
Hallo hylli,

falls Du nur TV-Mitschnitte eines DVB-Receivers von der Werbung befreien möchtest, so könntest Du Dir mal den "TS-Doctor" ansehen. Ist eigentlich ein Windows-Programm, lässt sich aber mit geringem Aufwand auch mit wine/playonlinux betreiben.
Da wird dann fast nichts gerendert, sondern das originale Material im Zweifel lediglich GOP-weise herausgetrennt, oder aber ein paar Bilder neu gerendert, alles in allem aber ist ein HD-Film in kaum einer Minute dann bereinigt und auch gleich von ggf. unerwünschten Nebenstreams (Videotext u.a.) befreit.
Der Programmierer ist auch Linux-Freund und hat daher auch ein offenes Ohr, wenn es mal unter Linux/Wine hakt.
Tipps zur Installation mit wine auch auf der entsprechenden AppDB-Seite unter winehq.org

Grüße,
Cy

Re: Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?
« Antwort #2 am: 16.06.2020, 19:22:24 »
Hi
Was hast du den hier : Unter Einstellungen
MfG soyo

Re: Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?
« Antwort #3 am: 16.06.2020, 22:29:43 »
Off-Topic:
Für verlustlose Schnitte an I-Frames (also nicht einzelbildgenau) gibt es auch VidCutter. Da gibt es gar keine Rechenzeit. Eignet sich besonders gut, um Vor- und Nachlauf abzuschneiden.
« Letzte Änderung: 17.06.2020, 10:05:10 von toffifee »

Re: Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?
« Antwort #4 am: 17.06.2020, 08:18:23 »
@soyo:
Die Anzahl Threads stehen bei mir auf Auto-Detect.

Was die Priorisierung angeht, muss ich erst nachschauen.

@CyCroN
Windows-Programme kommen bei mir nicht in Frage! Ich verwende nur nativ unter Linux laufende Progamme.

@toffifee:
Das ist in dem Fall nicht das Thema, außerdem funktioniert das genauso mit Avidemux.

Ich rendere meine Aufnahmen grundsätzlich in H264 und das Thema Hardwarebeschleunigung hat mich diesbzgl. schon länger interessiert.

Manche berichten eben, dass ein Film in 10-20 Minuten durch Hardwarebeschleunigung gerendert ist und mich interessiert nun, weshalb ich da nicht annähernd herankomme.

Hylli
« Letzte Änderung: 17.06.2020, 08:21:53 von hylli »

Re: Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?
« Antwort #5 am: 17.06.2020, 10:07:02 »
Zumindest sehe ich in deinen gezeigten Ausgaben keine Info zu Encoding, nur Decoding.
https://www.linux-magazin.de/ausgaben/2017/11/ffmpeg-mit-gpus/ kennst du schon?

Re: Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?
« Antwort #6 am: 17.06.2020, 10:20:43 »
Unterhalb von Videocodec steht "LIBVA", ebenso wurden mir nur bei der kompilierten bzw. aus dem PPA installierten Versionen "Intel H264" (und zwei weitere mit "Intel") als Video Codec angeboten.

Dies ist auf jeden Fall beim AppImage mal nicht der Fall!

Da ich vorgestern mit der kompilierten Version gearbeitet habe, habe ich Avidemux per Terminal gestartet.

Am Anfang und Ende konnte ich auch was mit "libva" lesen. Ich kann allerdings immer noch nicht beurteilen, ob hier die Hardwarebeschleunigung greift, oder eben nicht?!?

Evtl. muss ich die Kompilierung von Avidemux auch anders durchführen?!?

Ich meine mich erinnern zu können, dass "jemand" (ich meine @soyo oder @sc44) hier irgendwo mal beschrieben hat, wie man Avidemux mit Hardwarebeschleunigung kompiliert.

Da ich keine nVidia Karte habe, habe ich beim Kompilieren den Part nVidia betreffend weggelassen:
https://avidemux.org/smif/index.php/topic,18642.msg86021.html#msg86021

Danke übrigens für den Link, schaue ich mir heute Abend genauer an!

Wie es scheint, muss ich wohl ffmpeg mit Hardwarebeschleunigungsoptionen kompilieren.

Hylli
« Letzte Änderung: 17.06.2020, 10:37:31 von hylli »

Re: Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?
« Antwort #7 am: 17.06.2020, 17:14:24 »
Wie es scheint, muss ich wohl ffmpeg mit Hardwarebeschleunigungsoptionen kompilieren.
Hallo, kommt drauf an, was du damit vor hast. Für Avidemux, kannst du dir das schenken, Avidemux bringt eine eigene ffmpeg Version mit.
Deine Angaben sind auch nicht gerade Ausagekräftig. Um was für ein Video handelt es sich codec, format etc.
Als Vergleich kann ich dir nur das rendern mit einer 1050ti geben.

Encoder Einstellungen


Video 1280x720 50fps ohne filter ~40 Min. rendern ~5 Min.


mit filter render ~11 Min.



Video 1920x1080 25fps ohne filter ~3 Std. rendern ~20 min.


mit filter rendern ~55 Min.





« Letzte Änderung: 17.06.2020, 17:21:15 von Diatone_GTR349 »

Re: Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?
« Antwort #8 am: 17.06.2020, 17:39:23 »
Beispielvideo:
Zitat
General
ID                                       : 1017 (0x3F9)
Complete name                            : /media/MeinBenutzername/OMV-Aufnahmen/SHOOTOUT_-_KEINE_GNADE.ts
Format                                   : MPEG-TS
File size                                : 5.47 GiB
Duration                                 : 1 h 53 min
Start time                               : UTC 2020-06-11 23:52:02
End time                                 : UTC 2020-06-12 01:45:57
Overall bit rate mode                    : Variable
Overall bit rate                         : 6 875 kb/s
Country                                  : DEU
Timezone                                 : +02:00:00

Video
ID                                       : 767 (0x2FF)
Menu ID                                  : 61302 (0xEF76)
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L4
Format settings                          : CABAC / 4 Ref Frames
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Format settings, GOP                     : M=4, N=28
Codec ID                                 : 27
Duration                                 : 1 h 53 min
Bit rate                                 : 6 147 kb/s
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 16:9
Frame rate                               : 25.000 FPS
Standard                                 : Component
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Interlaced
Scan type, store method                  : Separated fields
Scan order                               : Top Field First
Bits/(Pixel*Frame)                       : 0.119
Stream size                              : 4.89 GiB (89%)
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709

Audio
ID                                       : 771 (0x303)
Menu ID                                  : 61302 (0xEF76)
Format                                   : AC-3
Format/Info                              : Audio Coding 3
Codec ID                                 : 6
Duration                                 : 1 h 53 min
Bit rate mode                            : Constant
Bit rate                                 : 384 kb/s
Channel(s)                               : 6 channels
Channel positions                        : Front: L C R, Side: L R, LFE
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Bit depth                                : 16 bits
Compression mode                         : Lossy
Delay relative to video                  : -780 ms
Stream size                              : 313 MiB (6%)
Language                                 : German
Language, more info                      : Clean effects
Service kind                             : Complete Main

Text
ID                                       : 34 (0x22)-149
Menu ID                                  : 61302 (0xEF76)
Format                                   : Teletext Subtitle
Language                                 : German

Other
ID                                       : 34 (0x22)-100
Menu ID                                  : 61302 (0xEF76)
Format                                   : Teletext
Language                                 : German
Netto Filmlänge nach Schnitt von Vor- und Nachlauf waren aber 83 Minuten.

Hylli

Re: Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?
« Antwort #9 am: 17.06.2020, 19:24:26 »
Wie es scheint, muss ich wohl ffmpeg mit Hardwarebeschleunigungsoptionen kompilieren.
Avidemux bringt eine eigene ffmpeg Version mit.
das widerspricht sich nicht, auch die ffmpeg version von avidemux muß mit vaapi support compiliert werden.

@hylli
warum versuchst dus nicht direkt mit ffmpeg?
https://trac.ffmpeg.org/wiki/Hardware/VAAPI

Re: Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?
« Antwort #10 am: 17.06.2020, 21:34:32 »
Ich hätte es eben gerne, dass das ganze mit Avidemux funktioniert.

Aber evtl. werde ich es mal so machen, dass ich ffmpeg mit Hardware Beschleunigung kompiliere, das Video mit Avidemux schneide und unkomprimiert speichere, und dann mal den Rendervorgang nach H264 mit ffmpeg durchführe.

Zwischenzeitlich bin ich auch auf diesen Link gestoßen:
https://www.avidemux.org/admWiki/doku.php?id=using:hwaccel

Ich habe nun noch in den Einstellungen unter Anzeige die Video-Anzeige auf libva umgestellt.

Unter Video-Decoder wird mir nun 2x LIBVA angezeigt, so wie es wohl sein soll.

Im Terminal finde ich auch einen Eintrag
Zitat
Matchin hw accel: VAAPI

Aktuell rendere ich mit diesen Einstellungen wieder ein Video, aber von der Geschwindigkeit scheint es mir nicht schneller zu sein, wie bei den letzten Versuchen.

Hylli
« Letzte Änderung: 17.06.2020, 21:42:47 von hylli »

Re: Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?
« Antwort #11 am: 17.06.2020, 23:31:16 »
das widerspricht sich nicht, auch die ffmpeg version von avidemux muß mit vaapi support compiliert werden.
Ich meinte ffmpeg, nicht die in Avidemux integrierte. Dort werden die entsprechenden Module mit kompiliert wenn die header files vorhanden sind. Und bei ihm waren sie vorhanden, sonst würden ihm die Codecs gar nicht zur Verfügung stehen.
Unter Video-Decoder wird mir nun 2x LIBVA angezeigt, so wie es wohl sein soll.
Was rechts steht ist völlig egal, das ist nur für die Bildausgabe in Avidemux, steht bei mir auf xvideo
weil es bei mir so am besten läuft. Nun noch mal zu deinem Problem, ich hatte ja den Vergleich gepostet,
die Bilder wurden ja gelöscht. Ich bräuchte für dein Video, nur schneiden und rendern, mit der 1050ti
etwa 10 Min. du hast 64 Min. benötigt deine GPU hat 192 Shader-Einheiten meine 1050ti hat 768
damit würdest du das 4fache an Zeit benötigen hinzu kommt noch das deine GPU etwa ein Drittel weniger Taktfrequenz hat deine ligt im Turbo Moder bei 1150MHz die 1050ti 1.696 MHz. wenn man das jetzt noch drauf rechnet, dann passt das schon mit den 64 Min. Oder anders herum gesagt, mehr geht mit deiner GPU nicht.

Re: Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?
« Antwort #12 am: 18.06.2020, 08:24:12 »
Ich habe gestern auf Tipp bzw. Link von @brikler...
https://trac.ffmpeg.org/wiki/Hardware/VAAPI
...eine Aufnahme mit 02:22:XX (HH:MM:SS) ohne Schnitt mit folgendem Befehl gerendert:
Zitat
ffmpeg -vaapi_device /dev/dri/renderD128 -i input.mp4 -vf 'format=nv12,hwupload' -c:v h264_vaapi -qp 18 output.mp4

Ergebnis:
Der Vorgang dauerte nur 22 Minuten!

Das zeigt mir, dass es prinzipiell schneller gehen könnte und müsste!

Den gleichen Film hatte ich zuvor auf ca. 02:06:XX geschnitten und mit Avidemux gerendert. Da dauerte es rund 90-95 Minuten.

Jetzt könnte ich natürlich den eigentlichen Schnitt mit Avidemux machen und anschließend das Video per Kommandozeile rendern, aber ich nutze hin und wieder auch den Filter "Delogo" zum Entfernen eines Senderlogos, und damit komme ich um das Rendern mit Avidemux nicht herum.

Daher wäre es immer noch wünschenswert, wenn ich das irgendwie mit Avidemux gebacken kriegen würde.

Natürlich weiß ich aber auch, dass ich das mit FFMPEG gebacken komme:
https://ffmpeg.org/ffmpeg-filters.html#delogo

Werde ich heute noch testen.

Hylli
« Letzte Änderung: 18.06.2020, 08:27:48 von hylli »

Re: Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?
« Antwort #13 am: 18.06.2020, 13:14:43 »
Ich habe mal das Video in Avidemux soweit vorbereitet, und würde das nun gerne per ffmpeg im Terminal rendern.

Dazu habe ich folgendes Projekt-Script gespeichert:
Zitat
adm = Avidemux()
if not adm.loadVideo("/media/MeinBenutzer/OMV-Aufnahmen/TV-Aufnahme.ts"):
    raise("Cannot load /media/MeinBenutzer/OMV-Aufnahmen/TV-Aufnahme.ts")
adm.clearSegments()
adm.addSegment(0, 0, 8576244444)
adm.markerA = 182124444
adm.markerB = 7782364444
adm.setPostProc(3, 3, 0)
adm.videoCodec("ffVAEncH264", "profile=100", "gopsize=100", "bframes=2", "bitrate=4000", "max_bitrate=8000", "quality=19", "rc_mode=0")
adm.addVideoFilter("mpdelogo2", "xoff=1553", "yoff=47", "lw=278", "lh=77", "band=4", "show=False")
adm.audioClearTracks()
adm.setSourceTrackLanguage(0,"deu")
adm.setSourceTrackLanguage(1,"eng")
adm.audioAddTrack(0)
adm.audioCodec(0, "copy");
adm.audioSetDrc(0, 0)
adm.audioSetShift(0, 0, 0)
adm.audioAddTrack(1)
adm.audioCodec(1, "copy");
adm.audioSetDrc(1, 0)
adm.audioSetShift(1, 0, 0)
adm.setContainer("MKV", "forceDisplayWidth=False", "displayWidth=1280", "displayAspectRatio=0").
Wie übersetze ich das nun in einen Terminal-Befehl für ffmpeg?

Hylli
« Letzte Änderung: 18.06.2020, 13:57:34 von hylli »

Re: Avidemux und Hardware-Beschleunigung - Dauer Video Rendering?
« Antwort #14 am: 22.06.2020, 21:54:12 »
Aktueller Stand der Dinge:
Nachdem ich mit Avidemux nicht weitergekommen bin in Sachen Hardwarebeschleunigung, habe ich es nun doch mal direkt mit FFMPEG versucht.

Avidemux nutzt ich aber trotzdem als Hilfsprogramm, um Startzeit, Endzeit, Länge sowie Position und Größe des Senderlogos zu ermitteln.

Im Ergebnis habe ich einen aktuell aufgenommenen Film mal wie folgt gerendert:
Zitat
ffmpeg -vaapi_device /dev/dri/renderD128 -ss 00:03:07.931 -i /media/Benutzer/OMV-Aufnahmen/TV_AUFNAHME_006.ts -t 02:06:39.740 -vf "delogo=x=1554:y=46:w=276:h=75",'format=nv12,hwupload' -c:v h264_vaapi -qp 19 -c:a copy /media/Benutzer/OMV-Video/TV_AUFNAHME_006.mkv
Der gesamte Rendervorgang dauerte bei der Filmlänge gerade mal noch rund 20 Minuten.

Den grundlegenden Befehl zum Rendern - den ich dann für mich angepasst habe - habe ich von hier:
https://trac.ffmpeg.org/wiki/Hardware/VAAPI
Zitat
ffmpeg -vaapi_device /dev/dri/renderD128 -i input.mp4 -vf 'format=nv12,hwupload' -c:v h264_vaapi output.mp4

Was das Entfernen des Senderlogo anbetrifft, so wurde ich hier fündig:
https://ffmpeg.org/ffmpeg-filters.html#delogo

Es dauerte allerdings eine Weile, bis ich die richtige Syntax fand, damit der Befehl inkl. Filter "delogo" funktionierte.

Bei meinen ersten Versuchen hatte ich zudem das Problem, dass ich trotz genauem Startpunkt immer ca. 1 Sekunde "unerwünschten Materials" zu sehen und hören war.

Das Problem bekam ich einigermaßen in den Griff, als ich unter folgendem Link eine bestimmte Info fand:
https://github.com/mifi/lossless-cut/pull/13

Die Info:
Zitat
To summarize, the nc (normal cut) & kc (keyframe cut) cutting modes correspond respectively to the following examples:

ffmpeg -i input.mp4 -ss 00:27 -t 00:15 -acodec copy -vcodec copy -y output_nc.mp4

ffmpeg -ss 00:27 -i input.mp4 -t 00:15 -avoid_negative_ts make_zero -acodec copy -vcodec copy -y output_kc.mp4

The next link suggests combining seeking (-ss before AND after -i, with a -ss position before AND a -ss duration after -i as explained):
https://trac.ffmpeg.org/wiki/Seeking
i.e.
ffmpeg -ss 00:20 -i input.mp4 -ss 00:07 -t 00:15 -avoid_negative_ts make_zero -acodec copy -vcodec copy -y output_new.mp4

Here, I use also -avoid_negative_ts make_zero to obtain the same nc mode output file but "without" the empty portion problem. In fact, in this case, VLC does not play the empty portion.

To be checked and tested on your application cases, with your video players, to see if combining seeking really helps...
Auf die Reihenfolge der Parameter -ss und -i kommt es also auch an, ob man den "nc" (normal) oder "kc" (keyframe cut) verwenden will.

Das mit
Zitat
-avoid_negative_ts make_zero
muss ich allerdings noch testen!

Bei diesem Film habe ich 0,500 Sekunden zum Startpunkt (-ss) dazu addiert und dafür bei der Länge (-t). In dem Fall ist das Ergebnis wie gewünscht.

---

Stellt sich nur noch die Frage, was ich aktuell an dem Befehl noch optimieren könnte oder sollte.

Wäre natürlich für weitere Tipps offen, aktuell experimentiere ich da eben noch.

Hylli
« Letzte Änderung: 22.06.2020, 21:57:55 von hylli »