Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/07/2011, à 09:29

k3c

Soft pour enlever la pub d'une vidéo ?

Bonjour

Je télécharge des vidéos de M6 avec tvdownloader.
Je cherche un logiciel qui trouverait et virerait la pub automatiquement.
Avidemux permet cela, mais à la main, pas automatiquement.
Dans les outils de TVO (freeware sous windows dont les sources ne sont pas disponibles) il y avait un programme qui faisait cela.

Connaissez-vous un logiciel libre qui fasse cela ?


Archlinux sur Xiaomi Air 13

Hors ligne

#2 Le 20/07/2011, à 11:20

k3c

Re : Soft pour enlever la pub d'une vidéo ?


Archlinux sur Xiaomi Air 13

Hors ligne

#3 Le 22/07/2011, à 15:07

k3c

Re : Soft pour enlever la pub d'une vidéo ?

Dans mon cas la pub correspond à un niveau sonore nettement plus élevé.

Je sais extraire le son de ma video avec ffmpeg, mais comment avoir le niveau sonore ?

Merci


Archlinux sur Xiaomi Air 13

Hors ligne

#4 Le 12/11/2011, à 12:16

k3c

Re : Soft pour enlever la pub d'une vidéo ?

Rebonjour

Personne n'a la moindre idée sur comment, à partir d'une vidéo, sortir un petit fichier du genre
minute 1 -> 63 Db
minute 2  -> 65 Db
...
23 ème minute -> 78 Db
dernière minute -> 64 Db

Vu qu'il y a de la pub à la 23 ème minute.

Merci pour toute idée.


Archlinux sur Xiaomi Air 13

Hors ligne

#5 Le 07/03/2012, à 08:42

k3c

Re : Soft pour enlever la pub d'une vidéo ?

Je me réponds, j'ai trouvé comment à partir d'un fichier son, afficher un graphe simplement

#!/usr/bin/env python
import sys
from pylab import *
import wave

def show_wave_n_spec(speech):
    spf = wave.open(speech,'r')
    sound_info = spf.readframes(-1)
    sound_info = fromstring(sound_info, 'Int16')

    f = spf.getframerate()

    subplot(211)
    plot(sound_info)
    title('Wave form et spectogramme de %s' % sys.argv[1])

    subplot(212)
    spectrogram = specgram(sound_info, Fs = f, scale_by_freq=True,sides='default')

    show()
    spf.close()

fil = sys.argv[1]
show_wave_n_spec(fil)

Code piqué sur
http://jaganadhg.freeflux.net/blog/arch … n-way.html
il faut installer pylab

J'ai trouvé des softs payants pour virer la pub, mais rien en open source.


Archlinux sur Xiaomi Air 13

Hors ligne

#6 Le 07/03/2012, à 12:28

k3c

Re : Soft pour enlever la pub d'une vidéo ?

@ bibichouchou

L'unité de l'axe du premier graphe est bizarre, pour un fichier d'une durée de 51 secondes, j'ai une valeur de
5 000 000

donc l'unité utilisée serait des 100 000 (cent millièmes) de seconde.

Edit : corrigé, pas foutu de faire une division...

Dernière modification par k3c (Le 07/03/2012, à 12:45)


Archlinux sur Xiaomi Air 13

Hors ligne

#7 Le 07/03/2012, à 12:44

bibichouchou

Re : Soft pour enlever la pub d'une vidéo ?

Pour un fichier de 90 secondes, j'ai un axe qui court jusqu'à 8 000 000.

voici les infos sur mon fichier audio, obtenu avec

mplayer -identify -frames 0 filename.wav
AUDIO: 44100 Hz, 2 ch, s16le, 1411.2 kbit/s

Dernière modification par bibichouchou (Le 07/03/2012, à 12:44)

Hors ligne

#8 Le 07/03/2012, à 12:49

bibichouchou

Re : Soft pour enlever la pub d'une vidéo ?

et au fait, tu as commencé à tester sur une vidéo avec pub ? est-ce que tu vois une signature dans le son ?

Hors ligne

#9 Le 07/03/2012, à 13:19

k3c

Re : Soft pour enlever la pub d'une vidéo ?

Non j'ai pas commencé à tester sur une vidéo, car les sons extraits en .wav me donnent des erreurs.

Exemple

Traceback (most recent call last):
  File "wavvv.py", line 24, in <module>
    show_wave_n_spec(fil)
  File "wavvv.py", line 7, in show_wave_n_spec
    spf = wave.open(speech,'r')
  File "/usr/lib/python2.7/wave.py", line 498, in open
    return Wave_read(f)
  File "/usr/lib/python2.7/wave.py", line 163, in __init__
    self.initfp(f)
  File "/usr/lib/python2.7/wave.py", line 130, in initfp
    raise Error, 'file does not start with RIFF id'
wave.Error: file does not start with RIFF id

par contre certains .wav passent sans problème.

Comment tu extrais la bande-son d'une vidéo au format .wav ?

j'ai essayé

mplayer -vo null -ao pcm -af resample=44000,volume=+4db:sc toto.avi 

qui donne un fichier audiodump.wav

et

ffmpeg -i toto.avi -vn -acodec copy toto.wav -ab 128k

Archlinux sur Xiaomi Air 13

Hors ligne

#10 Le 07/03/2012, à 13:41

k3c

Re : Soft pour enlever la pub d'une vidéo ?

Visiblement mes fichiers obtenus ne sont pas des vrais .wav

http://mail.python.org/pipermail/python … 54630.html


Archlinux sur Xiaomi Air 13

Hors ligne

#11 Le 07/03/2012, à 14:34

bibichouchou

Re : Soft pour enlever la pub d'une vidéo ?

k3c a écrit :

Visiblement mes fichiers obtenus ne sont pas des vrais .wav

oui c'était mon avis. je n'ai rien dit car je voulais vérifier avant de m'avancer smile
mais il me semblait avoir lu des avertissements sur pcm

si tu tapes

file filename.wav

tu obtiens quoi ?

moi je n'ai pas de vidéo avec pub sous la main. dans un premier temps, je voulais juste tester ton prog. donc j'ai utilisé un fichier audio au format wav, issu d'un fichier mp3. j'ai utilisé cette commande.

ffmpeg -ss 0 -t 90 -i ../7744139453_laurent-gerra-du-23-02-2012.mp3 test03.wav

et la commande file me dit :

test03.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 44100 Hz

ffmpeg choisit tout seul les codec selon les extensions des fichiers entrée/sortie, si je me souviens bien. tu peux aussi forcer avec des switchs, mais je n'ai pas la syntaxe en-tête.

Hors ligne

#12 Le 07/03/2012, à 14:38

bibichouchou

Re : Soft pour enlever la pub d'une vidéo ?

dans ta commande

ffmpeg -i toto.avi -vn -acodec copy toto.wav -ab 128k

essaye d'enlever

-acodec copy

car là tu lui dis de garder le codage d'origine de la piste audio, et rien ne dit que c'est du wav. c'est probablement du mp3 ou autre truc compressé.

Hors ligne

#13 Le 07/03/2012, à 14:39

k3c

Re : Soft pour enlever la pub d'une vidéo ?

Tu as raison, j'ai 2 libellés très différents, en faisant file toto.wav

faux.wav: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, JntStereo

vrai.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 44100 Hz

Archlinux sur Xiaomi Air 13

Hors ligne

#14 Le 07/03/2012, à 15:02

k3c

Re : Soft pour enlever la pub d'une vidéo ?

Ta commande génère un vrai .wav, mais je me prends un memory error (le fichier video fait dans les 20 minutes)

gg@gg-SATELLITE-L755:~$ python wavvv.py toto.wav 
Traceback (most recent call last):
  File "wavvv.py", line 24, in <module>
    show_wave_n_spec(fil)
  File "wavvv.py", line 14, in show_wave_n_spec
    plot(sound_info)
  File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 2141, in plot
    ret = ax.plot(*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 3433, in plot
    self.add_line(line)
  File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 1385, in add_line
    self._update_line_limits(line)
  File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 1393, in _update_line_limits
    p = line.get_path()
  File "/usr/lib/pymodules/python2.7/matplotlib/lines.py", line 651, in get_path
    self.recache()
  File "/usr/lib/pymodules/python2.7/matplotlib/lines.py", line 439, in recache
    y = np.asarray(self.convert_yunits(self._yorig), float)
  File "/usr/local/lib/python2.7/dist-packages/numpy/core/numeric.py", line 235, in asarray
    return array(a, dtype, copy=False, order=order)
MemoryError
gg@gg-SATELLITE-L755:~$  file !$
 file toto.wav
toto.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 44100 Hz
gg@gg-SATELLITE-L755:~$ 

Archlinux sur Xiaomi Air 13

Hors ligne

#15 Le 07/03/2012, à 15:06

bibichouchou

Re : Soft pour enlever la pub d'une vidéo ?

euh, oui mon fichier de 1min30 fait 16Mo.

j'imagine même pas pour 20min

Hors ligne

#16 Le 07/03/2012, à 15:13

bibichouchou

Re : Soft pour enlever la pub d'une vidéo ?

le problème du wav, c'est que c'est pas compressé, donc on récupère des gros fichiers...
faudrait pouvoir travailler sur du mp3. sauf s'il y a un moyen de baisser la taille du wav (en jouant sur le bitrate, mais ça va dégrader la qualité du fichier, non ?).

sinon pour le problème de la détection de la pub, il faut chercher les zones où les amplitudes sont max plusieurs secondes/minutes de suite. et peut-être éventuellement, voir si c'est suivi par un silence. mais je pense que ça va être chaud de faire un truc à l'aveugle, peut-être semi-automatique (l'utilisateur contrôle avant de couper-recouper la vidéo). je ne sais pas à quelle façon de procéder tu penses...

Hors ligne

#17 Le 07/03/2012, à 15:44

k3c

Re : Soft pour enlever la pub d'une vidéo ?

En fait je pensais non pas au joli graphe que donne le script Python posté, mais à un bête fichier avec 2 valeurs par ligne, temps (en secondes) et Db


donc
1; 62
2; 63
3; 61
...
1200; 75
1201; 74
1320;75
1321;62
1322;63

donc pub de 20 minutes (1200 s) à 22 minutes
Mon raisonnement -> si plus de x Db (par exemple 73) pendant plus de 30 secondes, alors pub, noter secondes de début et fin, puis passer à ffmpeg pour virer cette zone.


Archlinux sur Xiaomi Air 13

Hors ligne

#18 Le 07/03/2012, à 18:18

bibichouchou

Re : Soft pour enlever la pub d'une vidéo ?

oui c'est ce à quoi je pensais. ici, le prog donne une amplitude en fonction d'une grandeur inconnue. l'amplitude est une grandeur algébrique avec des valeurs positives et négatives (d'ailleurs, je n'ai pas bien compris ce que l'amplitude extraite par le prog représente physiquement exactement... si t'as une idée). donc on élève au carré pour avoir que du >=0. et ensuite, on peut calculer une amplitude moyenne sur une fenêtre temporelle de x secondes. comme l'idée est de repérer ce qui est plus fort relativement au reste du signal, il faudrait calculer déterminer le niveau sonore moyen (m) et son écart-type (sigma), et chercher tout ce qui est supérieur à m+k*sigma (ou k est un nombre à choisir : 1, 2...) (en fait, faire du sigma-clipping comme disent les anglo-saxons... et je n'ai pas encore trouvé de traduction satisfaisante pour ce terme big_smile). Je ne sais pas si c'est clair et/ou si tu as des connaissances en physique/traitement du signal. je propose cela car peut-être (probablement) qu'avec un autre fichier ton niveau à 73 dB ne marchera pas...

Hors ligne

#19 Le 08/03/2012, à 15:36

k3c

Re : Soft pour enlever la pub d'une vidéo ?

J'ai trouvé une librairie libsndfile
http://www.mega-nerd.com/libsndfile/
install simple
tar zxvf ...
cd libsn*
./configure
make
sudo make install

qui fournit entre autres choses un programme sndfile-info
qui donne les Decibels max (la zone Signal max)

sndfile-info soir.wav 

Version : libsndfile-1.0.23

========================================
File : soir.wav
Length : 9166892
RIFF : 9166884
WAVE
fmt  : 16
  Format        : 0x1 => WAVE_FORMAT_PCM
  Channels      : 2
  Sample Rate   : 44100
  Block Align   : 4
  Bit Width     : 16
  Bytes/sec     : 176400
data : 9166848
End

----------------------------------------
Sample Rate : 44100
Frames      : 2291712
Channels    : 2
Format      : 0x00010002
Sections    : 1
Seekable    : TRUE
Duration    : 00:00:51.966
Signal Max  : 9747 (-10.53 dB)

gg@gg-SATELLITE-L755:~$ 

mais ça ne me dit pas à quel moment sur la bande-son cette pointe est atteinte.

Couper la bande-son en morceaux de 30 secondes et les analyser ?

Bof


Archlinux sur Xiaomi Air 13

Hors ligne