
Recherche avancée
Autres articles (98)
-
Organiser par catégorie
17 mai 2013, parDans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...) -
XMP PHP
13 mai 2011, parDixit Wikipedia, XMP signifie :
Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...) -
Personnaliser les catégories
21 juin 2013, parFormulaire de création d’une catégorie
Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire.
Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)
Sur d’autres sites (10526)
-
Why isn't the 'wrap' option recognized in FFmpeg's drawtext filter ?
24 février 2023, par eugene_prgI'm trying to add text to a video using FFmpeg's drawtext filter, but I'm running into an issue with the 'wrap' option. Whenever I include 'wrap=500' in the filtergraph, I get the following error message :


[Parsed_drawtext_1 @ 0x563e23b1f500] Option 'wrap' not found
[AVFilterGraph @ 0x563e23b18d00] Error initializing filter 'drawtext' with args 'enable=between(t,0,4):text=one day you wake up and...:x=(w-text_w)/2:y=570:fontsize=48:fontcolor=white:box=1:boxcolor=black@0.5:boxborderw=5:wrap=500'
Error reinitializing filters !
Failed to inject frame into filter network : Option not found
Error while processing the decoded data for stream #0:0


Here's the full command I'm using :


ffmpeg -y -i "./videos/pexels-ivan-samkov-6689156.mp4" -vf "drawtext=fontfile=./fonts/DejaVuSans.ttf:text='DID U KNOW':x=(w-text_w)/2:y=200:fontsize=72:fontcolor=white:box=1:boxcolor=black@0.5:boxborderw=10, drawtext='enable=between(t,0,4)':text='do you know that girls...':x=(w-text_w)/2:y=570:fontsize=48:fontcolor=white:box=1:boxcolor=black@0.5:boxborderw=5:wrap=500, drawtext='enable=between(t,4,8)':text='are smarter than guys?':x=(w-text_w)/2:y=570:fontsize=48:fontcolor=white:box=1:boxcolor=black@0.5:boxborderw=5" -c:a copy "pexels-ivan-samkov-6689156.mp4_with_labels.mp4"



I'm not sure why the 'wrap' option isn't recognized. Can anyone help me figure out what's going on ?


-
Computer crashing when using python tools in same script
5 février 2023, par SL1997I am attempting to use the speech recognition toolkit VOSK and the speech diarization package Resemblyzer to transcibe audio and then identify the speakers in the audio.


Tools :


https://github.com/alphacep/vosk-api

https://github.com/resemble-ai/Resemblyzer

I can do both things individually but run into issues when trying to do them when running the one python script.


I used the following guide when setting up the diarization system :




Computer specs are as follows :


Intel(R) Core(TM) i3-7100 CPU @ 3.90GHz, 3912 Mhz, 2 Core(s), 4 Logical Processor(s)

32GB RAM

The following is my code, I am not to sure if using threading is appropriate or if I even implemented it correctly, how can I best optimize this code as to achieve the results I am looking for and not crash.


from vosk import Model, KaldiRecognizer
from pydub import AudioSegment
import json
import sys
import os
import subprocess
import datetime
from resemblyzer import preprocess_wav, VoiceEncoder
from pathlib import Path
from resemblyzer.hparams import sampling_rate
from spectralcluster import SpectralClusterer
import threading
import queue
import gc



def recognition(queue, audio, FRAME_RATE):

 model = Model("Vosk_Models/vosk-model-small-en-us-0.15")

 rec = KaldiRecognizer(model, FRAME_RATE)
 rec.SetWords(True)

 rec.AcceptWaveform(audio.raw_data)
 result = rec.Result()

 transcript = json.loads(result)#["text"]

 #return transcript
 queue.put(transcript)



def diarization(queue, audio):

 wav = preprocess_wav(audio)
 encoder = VoiceEncoder("cpu")
 _, cont_embeds, wav_splits = encoder.embed_utterance(wav, return_partials=True, rate=16)
 print(cont_embeds.shape)

 clusterer = SpectralClusterer(
 min_clusters=2,
 max_clusters=100,
 p_percentile=0.90,
 gaussian_blur_sigma=1)

 labels = clusterer.predict(cont_embeds)

 def create_labelling(labels, wav_splits):

 times = [((s.start + s.stop) / 2) / sampling_rate for s in wav_splits]
 labelling = []
 start_time = 0

 for i, time in enumerate(times):
 if i > 0 and labels[i] != labels[i - 1]:
 temp = [str(labels[i - 1]), start_time, time]
 labelling.append(tuple(temp))
 start_time = time
 if i == len(times) - 1:
 temp = [str(labels[i]), start_time, time]
 labelling.append(tuple(temp))

 return labelling

 #return
 labelling = create_labelling(labels, wav_splits)
 queue.put(labelling)



def identify_speaker(queue1, queue2):

 transcript = queue1.get()
 labelling = queue2.get()

 for speaker in labelling:

 speakerID = speaker[0]
 speakerStart = speaker[1]
 speakerEnd = speaker[2]

 result = transcript['result']
 words = [r['word'] for r in result if speakerStart < r['start'] < speakerEnd]
 #return
 print("Speaker",speakerID,":",' '.join(words), "\n")





def main():

 queue1 = queue.Queue()
 queue2 = queue.Queue()

 FRAME_RATE = 16000
 CHANNELS = 1

 podcast = AudioSegment.from_mp3("Podcast_Audio/Film-Release-Clip.mp3")
 podcast = podcast.set_channels(CHANNELS)
 podcast = podcast.set_frame_rate(FRAME_RATE)

 first_thread = threading.Thread(target=recognition, args=(queue1, podcast, FRAME_RATE))
 second_thread = threading.Thread(target=diarization, args=(queue2, podcast))
 third_thread = threading.Thread(target=identify_speaker, args=(queue1, queue2))

 first_thread.start()
 first_thread.join()
 gc.collect()

 second_thread.start()
 second_thread.join()
 gc.collect()

 third_thread.start()
 third_thread.join()
 gc.collect()

 # transcript = recognition(podcast,FRAME_RATE)
 #
 # labelling = diarization(podcast)
 #
 # print(identify_speaker(transcript, labelling))


if __name__ == '__main__':
 main()



When I say crash I mean everything freezes, I have to hold down the power button on the desktop and turn it back on again. No blue/blank screen, just frozen in my IDE looking at my code. Any help in resolving this issue would be greatly appreciated.


-
How to do filter twice at different time ffmpeg
29 décembre 2022, par Мохамед РуслановичAm trying to implement overlay twice but at different position and different time
Here is what am trying to do :
i just duplicate the filter


ffmpeg -t 50 -y -i film.mp4 -stream_loop -1 -i gif.gif -filter_complex "


[1]colorchannelmixer=aa=1,scale=iw*2:-1[a];[0][a]overlay=x='200':y='300':shortest=1:enable='between(t,0,10)';

[1]colorchannelmixer=aa=1,scale=iw*2:-1[b];[0][b]overlay=x='200':y='300':shortest=1:enable='between(t,15,20)'" 

-acodec copy output_task_3.mp4



But only the first overlay is been implemented, the seconds is not !


how to archive this ?


Now i wrote a PHP script that dose this filter once each time, and repeat proccess then merge all videos, but this is taking so long.