ffmpeg filter

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
Linpassion
Linux 2.x
Linux 2.x
Messaggi: 336
Iscritto il: mar 30 ott 2012, 11:17
Slackware: 14.2
Desktop: xfce, fluxbox

ffmpeg filter

Messaggio da Linpassion »

Ciao a tutti! Tempo fa ho compilato (SlackBuilds) ffmpeg senza abilitare tutti i filtri, ed ora ho la necessità di utilizzarlo con vis.stab. Volevo sapere come posso, se posibile, fare l'upgrade con questo filtro (già compilato), senza ricompilare di nuovo ffmpeg con in più il parametro vid.
In altre parole una volta compilato ffmpeg, posso fare l'upgrade con filtri ricompilati successivamente?

Grazie!

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3789
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: ffmpeg filter

Messaggio da joe »

Secondo me devi ricompilare.
Nello SlackBuild di Pat (ora ffmpeg è entrato nel parco software ufficiale di slackware 15.0) il filtro in questione, immagino ci sia un errore di battitura nel tuo messaggio, "libvidstab" mi pare da abilitare a livello del "configure" per far sì che poi ffmpeg vi si colleghi in fase di compilazione. Posso sbagliarmi aspetta anche altre conferme.

Se sei sulla 15.0 comunque, basta che "cloni" la webdir dei sorgenti di ffmpeg da un mirror di slackware e da lì pooi fare un build.sh in cui definisci le variabili per ogni componente che vuoi modificare rispetto al default di Pat.
Esempio io ho creato il pacchetto così:

Codice: Seleziona tutto

# cat build.sh 
#!/bin/sh

# Copy this into build directory (same of SlackBuild script) and run

X264=yes \
ASS=yes \
AOM=yes \
DAV1D=yes \
./ffmpeg.SlackBuild
La cosa dovrebbe funzionare anche sulla vecchia 14.2 immagino. Tiri giù la webdir esempio così:

Codice: Seleziona tutto

lftp -c "open slackware.uk/slackware/slackware64-15.0/source/l; mirror ffmpeg"
Ci copi dentro il build.sh e lo lanci.
Nel caso della libreria in questione, libvidstab è attivata di default, riporto un pezzo di slackbuild:

Codice: Seleziona tutto

# Default enabled features:
fontconfig="" ; [ "${FONTCONFIG:-yes}" != "no" ]  && fontconfig="--enable-libfontconfig"
freetype=""   ; [ "${FREETYPE:-yes}" != "no" ]    && freetype="--enable-libfreetype"
fribidi=""    ; [ "${FRIBIDI:-yes}" != "no" ]     && fribidi="--enable-libfribidi"
gnutls=""     ; [ "${GNUTLS:-yes}" != "no" ]      && gnutls="--enable-gnutls"
libbluray=""  ; [ "${BLURAY:-yes}" != "no" ]      && libbluray="--enable-libbluray"
libcaca=""    ; [ "${CACA:-yes}" != "no" ]        && libcaca="--enable-libcaca"
libcdio=""    ; [ "${LIBCDIO:-yes}" != "no" ]     && libcdio="--enable-libcdio"
libssh=""     ; [ "${LIBSSH:-yes}" != "no" ]      && libssh="--enable-libssh"
libtheora=""  ; [ "${THEORA:-yes}" != "no" ]      && libtheora="--enable-libtheora"
libv4l2=""    ; [ "${V4L2:-yes}" != "no" ]        && libv4l2="--enable-libv4l2"
libvorbis=""  ; [ "${VORBIS:-yes}" != "no" ]      && libvorbis="--enable-libvorbis"
libvpx=""     ; [ "${VPX:-yes}" != "no" ]         && libvpx="--enable-libvpx"
libwebp=""    ; [ "${WEBP:-yes}" != "no" ]        && libwebp="--enable-libwebp"
mp3lame=""    ; [ "${LAME:-yes}" != "no" ]        && mp3lame="--enable-libmp3lame"
opencl=""     ; [ "${OPENCL:-yes}" != "no" ]      && opencl="--enable-opencl"
opengl=""     ; [ "${OPENGL:-yes}" != "no" ]      && opengl="--enable-opengl"
openjpeg=""   ; [ "${JP2:-yes}" != "no" ]         && openjpeg="--enable-libopenjpeg"
pulse=""      ; [ "${PULSEAUDIO:-yes}" != "no" ]  && pulse="--enable-libpulse"
samba=""      ; [ "${SAMBA:-yes}" != "no" ]       && samba="--enable-libsmbclient"
libfrei0r=""  ; [ "${FREI0R:-yes}" != "no" ]      && libfrei0r="--enable-frei0r"
libspeex=""   ; [ "${SPEEX:-yes}" != "no" ]       && libspeex="--enable-libspeex"
libopenal=""  ; [ "${OPENAL:-yes}" != "no" ]      && libopenal="--enable-openal"
libopus=""    ; [ "${OPUS:-yes}" != "no" ]        && libopus="--enable-libopus"
libvidstab="" ; [ "${VIDSTAB:-yes}" != "no" ]     && libvidstab="--enable-libvidstab"
libxml2=""    ; [ "${LIBXML2:-yes}" != "no" ]     && libxml2="--enable-libxml2"
librsvg=""    ; [ "${LIBRSVG:-yes}" != "no" ]     && librsvg="--enable-librsvg"
libdrm=""     ; [ "${LIBDRM:-yes}" != "no" ]      && libdrm="--enable-libdrm"
VIDSTAB è già su "yes" per cui se ricompili lasciando così quell'opzione dovresti ottenere quello a cui punti.
Se sia possibile farlo senza ricompilare direi di no ma non ne ho la certezza.

Avatar utente
Linpassion
Linux 2.x
Linux 2.x
Messaggi: 336
Iscritto il: mar 30 ott 2012, 11:17
Slackware: 14.2
Desktop: xfce, fluxbox

Re: ffmpeg filter

Messaggio da Linpassion »

Se lo ricompilo una seconda volta abilitando solo vid cosa succede agli altri filtri abilitati alla prima compilazione?

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3789
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: ffmpeg filter

Messaggio da joe »

Ti salta fuori un eseguibile ffmpeg che immagino non vada più a cercare i vecchi filtri (se non li abiliti anche sta volta).
Quini in pratica credo che tu debba decidere prima cosa vuoi abilitare e cosa no. Poi lanci lo slackbuild con la configurazione scelta, infine hai il tuo ffmpeg che fa quello che avevi deciso.
Se un domani ti viene in mente una funzionalità che non avevi abilitato e ti serve, dovrai per forza ricompilare ffmpeg aggiungendo alla precedente configurazione di build anche il componente mancante. Analogamente se per qualche motivo in futuro vorrai snellire ffmpeg e rimuovere il supporto ad alcuni componenti, anche in questo caso dovrai riconfigurare e ricompilare. Da questo mi sa tanto che non si scappa.

Se il problema sono i tempi di compilazione (e ne so qualcosa visto il mio vecchio core 2 duo in uso), forse puoi tentare con "ccache". Non lo conosco, non l'ho mai usato ma so che in pratica salva i files generati dalla compilazione e al successivo build dovrebbe produrre solo quelli che variano recuperando quelli salvati se non ci sono differenze. Questo dovrebbe ridurre sensibilmente i tempi. Però non ti so dire di più nello specifico perché non l'ho mai usato.

erio
Linux 4.x
Linux 4.x
Messaggi: 1354
Iscritto il: ven 9 ott 2009, 19:25
Slackware: 13.37
Kernel: 3.0.7
Desktop: kde

Re: ffmpeg filter

Messaggio da erio »

linpassion se hai il filtro compilato e non ci sono salti di versione,scompatta ffmpeg in una directory aggiungi il filtro compilato dove deve essere e...usa la vecchia maniera per fare pacchetti in console,makepkg -l y -c n ../app-version-arch-tag.tgz e provalo se hai tutto.

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3022
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.6.16
Desktop: lxde
Località: Pisa
Contatta:

Re: ffmpeg filter

Messaggio da ponce »

in alternativa puoi usare anche i pacchetti precompilati di Alien Bob che hanno i filtri compilati al loro interno staticamente (non hanno dipendenze esterne)

https://slackware.nl/people/alien/restr ... ds/ffmpeg/

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3789
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: ffmpeg filter

Messaggio da joe »

Va be' ma così non vale però...

Non credevo che funzionasse la soluzione di "erio".
ffmpeg a livello di eseguibili diciamo non ha bisogno di "sapere" che è attivo il supporto ad un certo filtro/funzionalità/libreria e dove andare a pescarlo?
Da come spiegava erio pare che sia sufficiente piazzare il filtro al suo posto e poi ffmpeg se lo trova semplicemente in runtime.
Siamo sicuri sicuri di sta cosa?

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3022
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.6.16
Desktop: lxde
Località: Pisa
Contatta:

Re: ffmpeg filter

Messaggio da ponce »

joe ha scritto:
mar 14 giu 2022, 18:05
Va be' ma così non vale però...

Non credevo che funzionasse la soluzione di "erio".
ffmpeg a livello di eseguibili diciamo non ha bisogno di "sapere" che è attivo il supporto ad un certo filtro/funzionalità/libreria e dove andare a pescarlo?
Da come spiegava erio pare che sia sufficiente piazzare il filtro al suo posto e poi ffmpeg se lo trova semplicemente in runtime.
Siamo sicuri sicuri di sta cosa?
no, non puo' funzionare: devono essere installate le dipendenze necessarie per quella funzionalita' e ffmpeg, nel momento in cui viene compilato, se viene abilitata l'opzione relativa a quella libreria, la utilizza linkandola ad una delle sue librerie

Codice: Seleziona tutto

$ objdump -x /usr/bin/ffmpeg | grep NEEDED
  NEEDED               libavdevice.so.58
  NEEDED               libavfilter.so.7
  NEEDED               libavformat.so.58
  NEEDED               libavcodec.so.58
  NEEDED               libavresample.so.4
  NEEDED               libpostproc.so.55
  NEEDED               libswresample.so.3
  NEEDED               libswscale.so.5
  NEEDED               libavutil.so.56
[...]
che poi sono usate, a loro volta, dal binario di ffmpeg.
le dipendenze devono essere presenti sia durante la compilazione che dopo, per far funzionare il binario.
questo e' un esempio con l'ffmpeg che mi sono compilato localmente col supporto ai codec/filtri piu' disparati: guarda a cosa linkano le librerie che usa lui internamente

Codice: Seleziona tutto

$ objdump -x /usr/lib64/libavfilter.so | grep NEEDED
  NEEDED               libswscale.so.5
  NEEDED               libpostproc.so.55
  NEEDED               libavformat.so.58
  NEEDED               libavcodec.so.58
  NEEDED               libswresample.so.3
  NEEDED               libavresample.so.4
  NEEDED               libavutil.so.56
  NEEDED               libm.so.6
  NEEDED               libbs2b.so.0
  NEEDED               librubberband.so.2
  NEEDED               libflite_cmu_us_awb.so.1
  NEEDED               libflite_cmu_us_kal.so.1
  NEEDED               libflite_cmu_us_kal16.so.1
  NEEDED               libflite_cmu_us_rms.so.1
  NEEDED               libflite_cmu_us_slt.so.1
  NEEDED               libflite.so.1
  NEEDED               libfribidi.so.0
  NEEDED               libtesseract.so.5
  NEEDED               libass.so.9
  NEEDED               libva.so.2
  NEEDED               libvidstab.so.1.2
  NEEDED               libzmq.so.5
  NEEDED               libOpenCL.so.1
  NEEDED               libfontconfig.so.1
  NEEDED               libfreetype.so.6
  NEEDED               libdl.so.2
  NEEDED               libpthread.so.0
  NEEDED               libc.so.6
$ objdump -x /usr/lib64/libavcodec.so | grep NEEDED
  NEEDED               libswresample.so.3
  NEEDED               libavutil.so.56
  NEEDED               libvpx.so.7
  NEEDED               libm.so.6
  NEEDED               libwebpmux.so.3
  NEEDED               libwebp.so.7
  NEEDED               liblzma.so.5
  NEEDED               libcelt0.so.2
  NEEDED               libdav1d.so.5
  NEEDED               libopencore-amrwb.so.0
  NEEDED               librsvg-2.so.2
  NEEDED               libgobject-2.0.so.0
  NEEDED               libglib-2.0.so.0
  NEEDED               libcairo.so.2
  NEEDED               libzvbi.so.0
  NEEDED               libpthread.so.0
  NEEDED               libz.so.1
  NEEDED               libsnappy.so.1
  NEEDED               libfdk-aac.so.2
  NEEDED               libgsm.so.1
  NEEDED               libilbc.so.3
  NEEDED               libmp3lame.so.0
  NEEDED               libopencore-amrnb.so.0
  NEEDED               libopenjp2.so.7
  NEEDED               libopus.so.0
  NEEDED               libspeex.so.1
  NEEDED               libtheoraenc.so.1
  NEEDED               libtheoradec.so.1
  NEEDED               libtwolame.so.0
  NEEDED               libvorbis.so.0
  NEEDED               libvorbisenc.so.2
  NEEDED               libx264.so.163
  NEEDED               libx265.so.199
  NEEDED               libxvidcore.so.4
  NEEDED               libva.so.2
  NEEDED               libdl.so.2
  NEEDED               libc.so.6
libvidstab.so.1.2 e' linkato a libavfilter: se non fosse stato presente nel sistema al momento della compilazione di ffmpeg e non fosse stata abilitata l'opzione relativa per farglielo usare non sarebbe stato possibile utilizzarlo con ffmpeg, sarebbe stato necessario ricompilare il pacchetto.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3789
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: ffmpeg filter

Messaggio da joe »

Mi pare più che chiaro a questo punto.
Quindi per rispondere a Linpassion, se ti piace vincere facile fai un salto da AlienBob e procurati ffmpeg pre-compilato statico come fa lui. Oppure vai di rebuild, mettendo in conto quindi i tempi necessari alla ricompilazione e tanti saluti... in fondo la buona notizia è che dopotutto parliamo di "tempi macchina", per cui lanciato il build puoi anche far altro mentre il PC macina in autonomia.

PS_OT @Ponce
Ricordi che ti avevo accennato al pacchetto nvidia-legacy340-driver su SBo?
Avevo contattato Mat, il maintainer e alla fine sta volta ha risposto. Dice che non ha più la scheda grafica per testare il pacchetto per cui niente, ha comunicato di aver di fatto abbandonato la manutenzione del pacchetto, com'era abbastanza evidente dal comportamento penoso sulla slack-15.0.
Pazienza, ho visto che la cosa è confermata sia in mailing dall'update dell'altro giorno di Willy Sudiarto Raharjo che dalla pagina dei pacchetti su SBo (anche il pacchetto della parte kernel è da rivedere mettendo le patches giuste prese da archlinux).

Ho anche visto che qualche spunto su LQ è saltato fuori per altre versioni dei driver (390 mi pare). Qualche tentativo vedrò di farlo, se mai che ottengo qualcosa di decente posso buttarla lì sia sulla mailing di SBo che su LQ e magari l'accenno anche qui. In tempi come questi non mi pare il caso di dismettere schede video, pur vecchiotte e da tanto al chilo come la mia.

erio
Linux 4.x
Linux 4.x
Messaggi: 1354
Iscritto il: ven 9 ott 2009, 19:25
Slackware: 13.37
Kernel: 3.0.7
Desktop: kde

Re: ffmpeg filter

Messaggio da erio »

sembra che l'ho pensata troppo facile,ricompilando ffmpeg anche io ho visto dove.

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3022
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.6.16
Desktop: lxde
Località: Pisa
Contatta:

Re: ffmpeg filter

Messaggio da ponce »

joe ha scritto:
mer 15 giu 2022, 0:20
PS_OT @Ponce
Ricordi che ti avevo accennato al pacchetto nvidia-legacy340-driver su SBo?
Avevo contattato Mat, il maintainer e alla fine sta volta ha risposto. Dice che non ha più la scheda grafica per testare il pacchetto per cui niente, ha comunicato di aver di fatto abbandonato la manutenzione del pacchetto, com'era abbastanza evidente dal comportamento penoso sulla slack-15.0.
Pazienza, ho visto che la cosa è confermata sia in mailing dall'update dell'altro giorno di Willy Sudiarto Raharjo che dalla pagina dei pacchetti su SBo (anche il pacchetto della parte kernel è da rivedere mettendo le patches giuste prese da archlinux).

Ho anche visto che qualche spunto su LQ è saltato fuori per altre versioni dei driver (390 mi pare). Qualche tentativo vedrò di farlo, se mai che ottengo qualcosa di decente posso buttarla lì sia sulla mailing di SBo che su LQ e magari l'accenno anche qui. In tempi come questi non mi pare il caso di dismettere schede video, pur vecchiotte e da tanto al chilo come la mia.
come ti spiegavo un maintainer e' necessario, senza lo script verra' rimosso dal repository...

Avatar utente
Linpassion
Linux 2.x
Linux 2.x
Messaggi: 336
Iscritto il: mar 30 ott 2012, 11:17
Slackware: 14.2
Desktop: xfce, fluxbox

Re: ffmpeg filter

Messaggio da Linpassion »

Alla fine ho ricompilato ffmpeg con il modulo che i serviva. Ora il problema che ho è che vidstab funziona egregiamente, solamente che perdo un po' in quaità video. Se conoscete una ristorsa per usarlo al meglio senza perdere la qualità video ed audio ben venga :D

Rispondi