Recherche avancée

Médias (91)

Autres articles (107)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Problèmes fréquents

    10 mars 2010, par

    PHP et safe_mode activé
    Une des principales sources de problèmes relève de la configuration de PHP et notamment de l’activation du safe_mode
    La solution consiterait à soit désactiver le safe_mode soit placer le script dans un répertoire accessible par apache pour le site

  • Support de tous types de médias

    10 avril 2011

    Contrairement à 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 (7492)

  • Audio recorded with MediaRecorder on Chrome missing duration

    27 octobre 2016, par suppp111

    I am recording audio (oga/vorbis) files with MediaRecorder. When I record these file through Chrome I get problems : I cannot edit the files on ffmpeg and when I try to play them on Firefox it says they are corrupt (they do play fine on Chrome though).

    Looking at their metadata on ffmpeg I get this :

    Input #0, matroska,webm, from '91.oga':
     Metadata:
       encoder         : Chrome
     Duration: N/A, start: 0.000000, bitrate: N/A
       Stream #0:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)
    [STREAM]
    index=0
    codec_name=opus
    codec_long_name=Opus (Opus Interactive Audio Codec)
    profile=unknown
    codec_type=audio
    codec_time_base=1/48000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    sample_fmt=fltp
    sample_rate=48000
    channels=1
    channel_layout=mono
    bits_per_sample=0
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_pts=0
    start_time=0.000000
    duration_ts=N/A
    duration=N/A
    bit_rate=N/A
    max_bit_rate=N/A
    bits_per_raw_sample=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    DISPOSITION:default=1
    DISPOSITION:dub=0
    DISPOSITION:original=0
    DISPOSITION:comment=0
    DISPOSITION:lyrics=0
    DISPOSITION:karaoke=0
    DISPOSITION:forced=0
    DISPOSITION:hearing_impaired=0
    DISPOSITION:visual_impaired=0
    DISPOSITION:clean_effects=0
    DISPOSITION:attached_pic=0
    TAG:language=eng
    [/STREAM]
    [FORMAT]
    filename=91.oga
    nb_streams=1
    nb_programs=0
    format_name=matroska,webm
    format_long_name=Matroska / WebM
    start_time=0.000000
    duration=N/A
    size=7195
    bit_rate=N/A
    probe_score=100
    TAG:encoder=Chrome

    As you can see there are problems with the duration. I have looked at posts like this :
    How can I add predefined length to audio recorded from MediaRecorder in Chrome ?

    But even trying that, I got errors when trying to chop and merge files.For example when running :

    ffmpeg -f concat  -i 89_inputs.txt -c copy final.oga

    I get a lot of this :

    [oga @ 00000000006789c0] Non-monotonous DTS in output stream 0:0; previous: 57612, current: 1980; changing to 57613. This may result in incorrect timestamps in the output file.
    [oga @ 00000000006789c0] Non-monotonous DTS in output stream 0:0; previous: 57613, current: 2041; changing to 57614. This may result in incorrect timestamps in the output file.
    DTS -442721849179034176, next:42521 st:0 invalid dropping
    PTS -442721849179034176, next:42521 invalid dropping st:0
    [oga @ 00000000006789c0] Non-monotonous DTS in output stream 0:0; previous: 57614, current: 2041; changing to 57615. This may result in incorrect timestamps in the output file.
    [oga @ 00000000006789c0] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
    DTS -442721849179031296, next:42521 st:0 invalid dropping
    PTS -442721849179031296, next:42521 invalid dropping st:0

    Does anyone know what we need to do to audio files recorded from Chrome for them to be useful ? Or is there a problem with my setup ?

    Recorder js :

    if (navigator.getUserMedia) {
     console.log('getUserMedia supported.');

     var constraints = { audio: true };
     var chunks = [];

     var onSuccess = function(stream) {
       var mediaRecorder = new MediaRecorder(stream);

       record.onclick = function() {
         mediaRecorder.start();
         console.log(mediaRecorder.state);
         console.log("recorder started");
         record.style.background = "red";

         stop.disabled = false;
         record.disabled = true;

         var aud = document.getElementById("audioClip");
         start = aud.currentTime;
       }

       stop.onclick = function() {
         console.log(mediaRecorder.state);
         console.log("Recording request sent.");
         mediaRecorder.stop();
       }

       mediaRecorder.onstop = function(e) {
         console.log("data available after MediaRecorder.stop() called.");

         var audio = document.createElement('audio');
         audio.setAttribute('controls', '');
         audio.setAttribute('id', 'audioClip');

         audio.controls = true;
         var blob = new Blob(chunks, { 'type' : 'audio/ogg; codecs="vorbis"' });
         chunks = [];
         var audioURL = window.URL.createObjectURL(blob);
         audio.src = audioURL;

         sendRecToPost(blob);   // this just send the audio blob to the server by post
         console.log("recorder stopped");

       }
  • Audio recorded with MediaRecorder on Chrome missing duration

    3 juin 2017, par suppp111

    I am recording audio (oga/vorbis) files with MediaRecorder. When I record these file through Chrome I get problems : I cannot edit the files on ffmpeg and when I try to play them on Firefox it says they are corrupt (they do play fine on Chrome though).

    Looking at their metadata on ffmpeg I get this :

    Input #0, matroska,webm, from '91.oga':
     Metadata:
       encoder         : Chrome
     Duration: N/A, start: 0.000000, bitrate: N/A
       Stream #0:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)
    [STREAM]
    index=0
    codec_name=opus
    codec_long_name=Opus (Opus Interactive Audio Codec)
    profile=unknown
    codec_type=audio
    codec_time_base=1/48000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    sample_fmt=fltp
    sample_rate=48000
    channels=1
    channel_layout=mono
    bits_per_sample=0
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_pts=0
    start_time=0.000000
    duration_ts=N/A
    duration=N/A
    bit_rate=N/A
    max_bit_rate=N/A
    bits_per_raw_sample=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    DISPOSITION:default=1
    DISPOSITION:dub=0
    DISPOSITION:original=0
    DISPOSITION:comment=0
    DISPOSITION:lyrics=0
    DISPOSITION:karaoke=0
    DISPOSITION:forced=0
    DISPOSITION:hearing_impaired=0
    DISPOSITION:visual_impaired=0
    DISPOSITION:clean_effects=0
    DISPOSITION:attached_pic=0
    TAG:language=eng
    [/STREAM]
    [FORMAT]
    filename=91.oga
    nb_streams=1
    nb_programs=0
    format_name=matroska,webm
    format_long_name=Matroska / WebM
    start_time=0.000000
    duration=N/A
    size=7195
    bit_rate=N/A
    probe_score=100
    TAG:encoder=Chrome

    As you can see there are problems with the duration. I have looked at posts like this :
    How can I add predefined length to audio recorded from MediaRecorder in Chrome ?

    But even trying that, I got errors when trying to chop and merge files.For example when running :

    ffmpeg -f concat  -i 89_inputs.txt -c copy final.oga

    I get a lot of this :

    [oga @ 00000000006789c0] Non-monotonous DTS in output stream 0:0; previous: 57612, current: 1980; changing to 57613. This may result in incorrect timestamps in the output file.
    [oga @ 00000000006789c0] Non-monotonous DTS in output stream 0:0; previous: 57613, current: 2041; changing to 57614. This may result in incorrect timestamps in the output file.
    DTS -442721849179034176, next:42521 st:0 invalid dropping
    PTS -442721849179034176, next:42521 invalid dropping st:0
    [oga @ 00000000006789c0] Non-monotonous DTS in output stream 0:0; previous: 57614, current: 2041; changing to 57615. This may result in incorrect timestamps in the output file.
    [oga @ 00000000006789c0] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
    DTS -442721849179031296, next:42521 st:0 invalid dropping
    PTS -442721849179031296, next:42521 invalid dropping st:0

    Does anyone know what we need to do to audio files recorded from Chrome for them to be useful ? Or is there a problem with my setup ?

    Recorder js :

    if (navigator.getUserMedia) {
     console.log('getUserMedia supported.');

     var constraints = { audio: true };
     var chunks = [];

     var onSuccess = function(stream) {
       var mediaRecorder = new MediaRecorder(stream);

       record.onclick = function() {
         mediaRecorder.start();
         console.log(mediaRecorder.state);
         console.log("recorder started");
         record.style.background = "red";

         stop.disabled = false;
         record.disabled = true;

         var aud = document.getElementById("audioClip");
         start = aud.currentTime;
       }

       stop.onclick = function() {
         console.log(mediaRecorder.state);
         console.log("Recording request sent.");
         mediaRecorder.stop();
       }

       mediaRecorder.onstop = function(e) {
         console.log("data available after MediaRecorder.stop() called.");

         var audio = document.createElement('audio');
         audio.setAttribute('controls', '');
         audio.setAttribute('id', 'audioClip');

         audio.controls = true;
         var blob = new Blob(chunks, { 'type' : 'audio/ogg; codecs="vorbis"' });
         chunks = [];
         var audioURL = window.URL.createObjectURL(blob);
         audio.src = audioURL;

         sendRecToPost(blob);   // this just send the audio blob to the server by post
         console.log("recorder stopped");

       }
  • TypeError : _ffmpeg_ffmpeg__WEBPACK_IMPORTED_MODULE_1__ is not a constructor

    10 novembre 2023, par Shubham
    import { useState, useRef } from "react";&#xA;&#xA;import \* as FFmpeg from "@ffmpeg/ffmpeg";&#xA;&#xA;const AudioRecorders = ({ onAudioRecorded }) =\> {&#xA;const \[permission, setPermission\] = useState(false);&#xA;const \[stream, setStream\] = useState(null);&#xA;const mimeType = "video/webm";&#xA;const mediaRecorder = useRef(null);&#xA;const \[recordingStatus, setRecordingStatus\] = useState("inactive");&#xA;const \[audioChunks, setAudioChunks\] = useState(\[\]);&#xA;const \[audio, setAudio\] = useState(null);&#xA;&#xA;const ffmpeg = useRef(null);&#xA;&#xA;const createFFmpeg = async ({ log = false }) =\> {&#xA;// here I am facing the error&#xA;const ffmpegInstance = new FFmpeg({ log });&#xA;await ffmpegInstance.load();&#xA;return ffmpegInstance;&#xA;};&#xA;&#xA;const convertWebmToWav = async (webmBlob) =\> {&#xA;if (!ffmpeg.current) {&#xA;ffmpeg.current = await createFFmpeg({ log: false });&#xA;}&#xA;&#xA;    const inputName = "input.webm";&#xA;    const outputName = "output.wav";&#xA;    &#xA;    ffmpeg.current.FS("writeFile", inputName, await webmBlob.arrayBuffer());&#xA;    await ffmpeg.current.run("-i", inputName, outputName);&#xA;    &#xA;    const outputData = ffmpeg.current.FS("readFile", outputName);&#xA;    const outputBlob = new Blob([outputData.buffer], { type: "audio/wav" });&#xA;    &#xA;    return outputBlob;&#xA;&#xA;};&#xA;&#xA;const getMicrophonePermission = async () =\> {&#xA;if ("MediaRecorder" in window) {&#xA;try {&#xA;const streamData = await navigator.mediaDevices.getUserMedia({&#xA;audio: true,&#xA;video: false,&#xA;});&#xA;setPermission(true);&#xA;setStream(streamData);&#xA;} catch (err) {&#xA;alert(err.message);&#xA;}&#xA;} else {&#xA;alert("The MediaRecorder API is not supported in your browser.");&#xA;}&#xA;};&#xA;&#xA;const startRecording = async () =\> {&#xA;setRecordingStatus("recording");&#xA;//create new Media recorder instance using the stream&#xA;const media = new MediaRecorder(stream, { type: mimeType });&#xA;//set the MediaRecorder instance to the mediaRecorder ref&#xA;mediaRecorder.current = media;&#xA;//invokes the start method to start the recording process&#xA;mediaRecorder.current.start();&#xA;let localAudioChunks = \[\];&#xA;mediaRecorder.current.ondataavailable = (event) =\> {&#xA;if (typeof event.data === "undefined") return;&#xA;if (event.data.size === 0) return;&#xA;localAudioChunks.push(event.data);&#xA;};&#xA;setAudioChunks(localAudioChunks);&#xA;};&#xA;&#xA;const stopRecording = () =\> {&#xA;setRecordingStatus("inactive");&#xA;//stops the recording instance&#xA;mediaRecorder.current.stop();&#xA;mediaRecorder.current.onstop = async () =\> {&#xA;//creates a blob file from the audiochunks data&#xA;const audioBlob = new Blob(audioChunks, { type: mimeType });&#xA;// creates a playable URL from the blob file.&#xA;const audioUrl = URL.createObjectURL(audioBlob);&#xA;// converts the WebM blob to a WAV blob.&#xA;const newBlob = await convertWebmToWav(audioBlob);&#xA;await onAudioRecorded(newBlob);&#xA;setAudio(audioUrl);&#xA;setAudioChunks(\[\]);&#xA;};&#xA;};&#xA;&#xA;return (&#xA;\&#xA;<h2>Audio Recorder</h2>&#xA;\&#xA;\<div classname="audio-controls">&#xA;{!permission ? (&#xA;\<button type="button">&#xA;Get Microphone&#xA;\&#xA;) : null}&#xA;{permission &amp;&amp; recordingStatus === "inactive" ? (&#xA;\<button type="button">&#xA;Start Recording&#xA;\&#xA;) : null}&#xA;{recordingStatus === "recording" ? (&#xA;\<button type="button">&#xA;Stop Recording&#xA;\&#xA;) : null}&#xA;{audio ? (&#xA;\<div classname="audio-container">&#xA;\<audio src="{audio}">\&#xA;<a>&#xA;Download Recording&#xA;</a>&#xA;\&#xA;) : null}&#xA;\&#xA;\&#xA;\&#xA;);&#xA;};&#xA;export default AudioRecorders;&#xA;&#xA;\`&#xA;&#xA;</audio></div></button></button></button></div>

    &#xA;

    ERROR&#xA;ffmpeg_ffmpeg__WEBPACK_IMPORTED_MODULE_1_ is not a constructor&#xA;TypeError : ffmpeg_ffmpeg__WEBPACK_IMPORTED_MODULE_1_ is not a constructor&#xA;at createFFmpeg (http://localhost:3000/main.48220156e0c620f1acd0.hot-update.js:41:28)&#xA;at convertWebmToWav (http://localhost:3000/main.48220156e0c620f1acd0.hot-update.js:49:30)&#xA;at mediaRecorder.current.onstop (http://localhost:3000/main.48220156e0c620f1acd0.hot-update.js:109:29)`

    &#xA;

    I am trying to record the voice in audio/wav formate but its recording in video/webm formate not because of \<const mimetype="video/webm">. Whatever the mimeType I am giving its showing the file type video/webm on "https://www.checkfiletype.com/". I am recording it for the speech_recognition used in flask backend which is accepting only audio/wav.&#xA;So in frontend I have written a function "convertWebmToWav " which is giving me the error :&#xA;Uncaught runtime errors:&#xA;&#xA;</const>

    &#xA;