
Recherche avancée
Médias (1)
-
1 000 000 (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
Autres articles (59)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir -
Support de tous types de médias
10 avril 2011Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)
Sur d’autres sites (10324)
-
PiCamera stream to youtube with ffmpeg and capture image every second
9 octobre 2020, par MisterGrayI'm sending a livestream with a Python script on a Raspberry Pi 4 to Youtube with ffmpeg.


Additionally I want to check the stream for movements. Therefore I want to compare two frames with each other. Since this is relatively computationally intensive, I wanted to limit myself to "only" compare single frames every second.


The camera.capture() command, however, seems to take very long, so the stream hangs again and again.


What is the best way to get a raw frame during the stream ?


Is there a better alternative to detect movements while creating a stream with ffmpeg ?


#!/usr/bin/env python3
import subprocess
from picamera.array import PiRGBArray
from picamera import PiCamera
import time
import cv2
import numpy as np

YOUTUBE = 'rtmp://a.rtmp.youtube.com/live2/'
KEY = 'MyYoutubeKey'
stream_cmd = 'ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv ' + YOUTUBE + KEY

avg = None
stream_pipe = subprocess.Popen(stream_cmd, shell=True, stdin=subprocess.PIPE)
resolution = (1280,720)
with PiCamera(resolution = resolution) as camera:

 rawCapture = PiRGBArray(camera, size = resolution)

 camera.framerate = 25
 camera.vflip = True
 camera.hflip = True
 camera.start_recording(stream_pipe.stdin, format='h264', bitrate = 6000000)
 while True:
 camera.wait_recording(1)

 # this command takes a long time to finish
 frame = camera.capture(stream_pipe.stdin, 'rgb')

 """
 further calculations
 """

 rawCapture.truncate(0)

 camera.stop_recording()
 stream_pipe.stdin.close()
 stream_pipe.wait()



-
Handling "NullReferenceException" when executing "ffmpeg.exe" process in C# [duplicate]
1er juillet 2023, par FrostDreamI'm trying to execute the "ffmpeg.exe" process in my C# application to process media files. However, I'm encountering a "NullReferenceException" when running the code. I've tried various approaches, including using a try-catch block, but the exception still persists. Here's the relevant code snippet :


bool isValidMedia = true;

try
{
 Process process = new Process();
 process.StartInfo.FileName = "ffmpeg.exe";
 process.StartInfo.Arguments = $"-i \"{file}\" -f null -";
 process.StartInfo.UseShellExecute = false;
 process.StartInfo.RedirectStandardOutput = true;
 process.StartInfo.CreateNoWindow = true;
 process.OutputDataReceived += (sender, e) =>
 {
 if (!string.IsNullOrEmpty(e.Data))
 {
 int startIndex = e.Data.IndexOf("samples=") + 8;
 button.Width = int.Parse(e.Data.Substring(startIndex, e.Data.IndexOf(" ") - startIndex)) / zoom * 100;
 }
 else
 {
 isValidMedia = false;
 }
 };

 process.Start();
 process.BeginOutputReadLine();
 process.WaitForExit();
}
catch
{
 isValidMedia = false;
}

if (!isValidMedia)
{
 MessageBox.Show("Not a valid media.");
 return;
}




I suspect that the issue may be related to the asynchronous execution of the event handler or the initialization of the ProcessStartInfo object. Can anyone please help me identify the cause of the "NullReferenceException" and provide guidance on how to resolve it ? Thank you in advance for your assistance.


-
Why do I get UnknownValueError when trying to run .recognize_google ?
21 juillet 2022, par John SmithFollowing code is meant to transcribe a long audio file to text. It is to do this piece by piece.
trimmed.wav
holds a 15-second-long piece of a longer audio file (whose path is stored infname
) :

#!/usr/bin/env python3

from subprocess import run
from sys import exit

italic = '\33[3m'
end = '\33[m'

try:
 from speech_recognition import AudioFile, Recognizer
except:
 run("pip3 install SpeechRecognition", shell=True)
 from speech_recognition import AudioFile, Recognizer

def transcribe_piece(fname, lang, stime):
 extension = fname[-3:]
 etime = stime + 15
 cmd = f"ffmpeg -ss {stime} -to {etime} -i {fname} -c copy trimmed.{extension} >/dev/null 2>&1"
 run(cmd, shell=True)
 cmd = f"ffmpeg -i trimmed.{extension} -f wav trimmed.wav >/dev/null 2>&1"
 run(cmd, shell=True)
 r = Recognizer() 
 af = AudioFile("trimmed.wav")
 with af as source:
 r.adjust_for_ambient_noise(source)
 audio = r.record(source)
 t = r.recognize_google(audio, language=lang)#UnknownValueError() speech_recognition.UnknownValueError
 print(f"{italic}{t}{end}")
 with open("of", "w") as f:
 f.write(f"{t}\n")
 run(f"rm trimmed.{extension}", shell=True) 
 run(f"rm trimmed.wav", shell=True)
 
 

fname = input("File name? Skip the path if the file is in CWD. The usage of ~ is allowed.\n")

lang = input("""Specify one of the following languages:
fr-BE, fr-CA, fr-FR, fr-CH

en-AU, en-CA, en-GH, en-HK, en-IN, en-IE, en-KE, en-NZ, en-PK, en-PH, en-SG, en-ZA, en-TZ, en-GB, en-US

es-AR, es-BO, es-BO, es-CL, es-CO, es-CR, es-DO, es-EC, es-SV, es-SV, es-GT, es-HN, es-MX, es-NI, es-PA, es-PY, es-PE, es-PR, es-ES, es-US, es-UY, es-VE\n""")


#for stime in range(0, 10000, 15):
# try:
# transcribe_piece(fname, lang, stime)
# except:
# run("shred -u trimmed.wav" , shell=True) 
 #run("shred -u trimmed.wav >/dev/null 2>&1" , shell=True) 
# exit(0)
 
for stime in range(0, 10000, 15):#this loop is only for the sake of debugging, use try/except above
 transcribe_piece(fname, lang, stime)




It gives me the following error :


Traceback (most recent call last):
 File "/home/jim/CS/SoftwareDevelopment/MySoftware/Python/speech-to-text/long-audio-to-text.py", line 61, in <module>
 transcribe_piece(fname, lang, stime)
 File "/home/jim/CS/SoftwareDevelopment/MySoftware/Python/speech-to-text/long-audio-to-text.py", line 31, in transcribe_piece
 t = r.recognize_google(audio, language=lang)
 File "/home/jim/.local/lib/python3.10/site-packages/speech_recognition/__init__.py", line 858, in recognize_google
 if not isinstance(actual_result, dict) or len(actual_result.get("alternative", [])) == 0: raise UnknownValueError()
speech_recognition.UnknownValueError

</module>


The said error refers to line 31, that is
t = r.recognize_google(audio, language=lang)
.
Why do I get this error ? How might I rewrite this code so that such error does not appear ?