Recherche avancée

Médias (1)

Mot : - Tags -/MediaSPIP

Autres articles (112)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

Sur d’autres sites (15305)

  • ffmpeg - convert mxf to ts while maintaining "Text" tracks

    15 février 2021, par user3552454

    I have a .mxf file that has 608/708 captions. When I look at the MediaInfo of this file I see below Text information. My goal is to extract 608/708 captions from this file using ccextractor. To do that first I am converting this to a .ts file using below ffmpeg command as ffmpeg -i abc.mxf -c:v mpeg2video -s 160x90 -b:v 300k -map 0:v -map 0:d abc.ts. But when I check the MediaInfo of abc.ts file I don't see any of "@type:Text" tracks in the output.

    


    I also tried with -copy_unknown but still, I am not able to see "@type:Text" in output .ts file MediaInfo.

    


    Also in some file I see "MuxingMode": "Ancillary data / CDP" and some files I am seeing "MuxingMode": "A/53 / DTVCC Transport". What is the difference between these two ?

    


    Request you to share your valuable feedback. Thank you.

    


    [{
    "@type": "Text",
    "@typeorder": "1",
    "ID": "512-CC1",
    "Format": "EIA-608",
    "MuxingMode": "Ancillary data / CDP",
    "Duration": "2645.142",
    "BitRate_Mode": "CBR",
    "FrameRate": "29.970",
    "FrameCount": "79275",
    "Delay": "0.000",
    "Delay_DropFrame": "Yes",
    "Delay_Source": "Container",
    "StreamSize": "0",
    "extra": {
        "Delay_SDTI": "0",
        "CaptionServiceName": "CC1",
        "CaptionServiceDescriptor_IsPresent": "No",
        "cdp_length_Min": "73",
        "cdp_length_Max": "73"
    }
}, {
    "@type": "Text",
    "@typeorder": "2",
    "ID": "512-1",
    "Format": "EIA-708",
    "MuxingMode": "Ancillary data / CDP",
    "Duration": "2645.142",
    "BitRate_Mode": "CBR",
    "FrameRate": "29.970",
    "FrameCount": "79275",
    "StreamSize": "0",
    "extra": {
        "CaptionServiceName": "1",
        "CaptionServiceDescriptor_IsPresent": "No",
        "cdp_length_Min": "73",
        "cdp_length_Max": "73"
    }
}, {
    "@type": "Text",
    "@typeorder": "3",
    "ID": "512-2",
    "Format": "EIA-708",
    "MuxingMode": "Ancillary data / CDP",
    "Duration": "2645.142",
    "BitRate_Mode": "CBR",
    "FrameRate": "29.970",
    "FrameCount": "79275",
    "StreamSize": "0",
    "extra": {
        "CaptionServiceName": "2",
        "CaptionServiceDescriptor_IsPresent": "No",
        "cdp_length_Min": "73",
        "cdp_length_Max": "73"
    }
}, {
    "@type": "Text",
    "@typeorder": "4",
    "ID": "512-3",
    "Format": "EIA-708",
    "MuxingMode": "Ancillary data / CDP",
    "Duration": "2645.142",
    "BitRate_Mode": "CBR",
    "FrameRate": "29.970",
    "FrameCount": "79275",
    "StreamSize": "0",
    "extra": {
        "CaptionServiceName": "3",
        "CaptionServiceDescriptor_IsPresent": "No",
        "cdp_length_Min": "73",
        "cdp_length_Max": "73"
    }
}, {
    "@type": "Text",
    "@typeorder": "5",
    "ID": "512-4",
    "Format": "EIA-708",
    "MuxingMode": "Ancillary data / CDP",
    "Duration": "2645.142",
    "BitRate_Mode": "CBR",
    "FrameRate": "29.970",
    "FrameCount": "79275",
    "StreamSize": "0",
    "extra": {
        "CaptionServiceName": "4",
        "CaptionServiceDescriptor_IsPresent": "No",
        "cdp_length_Min": "73",
        "cdp_length_Max": "73"
    }
}]


    


  • Error using FFmpeg.wasm for audio files in react : "ffmpeg.FS('readFile', 'output.mp3') error. Check if the path exists"

    25 février 2021, par Rayhan Memon

    I'm currently building a browser-based audio editor and I'm using ffmpeg.wasm (a pure WebAssembly/JavaScript port of FFmpeg) to do it.

    


    I'm using this excellent example, which allows you to uploaded video file and convert it into a gif :

    


    import React, { useState, useEffect } from &#x27;react&#x27;;&#xA;import &#x27;./App.css&#x27;;&#xA;&#xA;import { createFFmpeg, fetchFile } from &#x27;@ffmpeg/ffmpeg&#x27;;&#xA;const ffmpeg = createFFmpeg({ log: true });&#xA;&#xA;function App() {&#xA;  const [ready, setReady] = useState(false);&#xA;  const [video, setVideo] = useState();&#xA;  const [gif, setGif] = useState();&#xA;&#xA;  const load = async () => {&#xA;    await ffmpeg.load();&#xA;    setReady(true);&#xA;  }&#xA;&#xA;  useEffect(() => {&#xA;    load();&#xA;  }, [])&#xA;&#xA;  const convertToGif = async () => {&#xA;    // Write the file to memory &#xA;    ffmpeg.FS(&#x27;writeFile&#x27;, &#x27;test.mp4&#x27;, await fetchFile(video));&#xA;&#xA;    // Run the FFMpeg command&#xA;    await ffmpeg.run(&#x27;-i&#x27;, &#x27;test.mp4&#x27;, &#x27;-t&#x27;, &#x27;2.5&#x27;, &#x27;-ss&#x27;, &#x27;2.0&#x27;, &#x27;-f&#x27;, &#x27;gif&#x27;, &#x27;out.gif&#x27;);&#xA;&#xA;    // Read the result&#xA;    const data = ffmpeg.FS(&#x27;readFile&#x27;, &#x27;out.gif&#x27;);&#xA;&#xA;    // Create a URL&#xA;    const url = URL.createObjectURL(new Blob([data.buffer], { type: &#x27;image/gif&#x27; }));&#xA;    setGif(url)&#xA;  }&#xA;&#xA;  return ready ? (&#xA;    &#xA;    <div classname="App">&#xA;      { video &amp;&amp; &#xA;&#xA;      }&#xA;&#xA;&#xA;      <input type="file" />> setVideo(e.target.files?.item(0))} />&#xA;&#xA;      <h3>Result</h3>&#xA;&#xA;      <button>Convert</button>&#xA;&#xA;      { gif &amp;&amp; <img src="http://stackoverflow.com/feeds/tag/{gif}" width="250" style='max-width: 300px; max-height: 300px' />}&#xA;&#xA;    </div>&#xA;  )&#xA;    :&#xA;    (&#xA;      <p>Loading...</p>&#xA;    );&#xA;}&#xA;&#xA;export default App;&#xA;

    &#xA;

    I've modified the above code to take an mp3 file recorded in the browser (recorded using the npm package 'mic-recorder-to-mp3' and passed to this component as a blobURL in the global state) and do something to it using ffmpeg.wasm :

    &#xA;

    import React, { useContext, useState, useEffect } from &#x27;react&#x27;;&#xA;import Context from &#x27;../../store/Context&#x27;;&#xA;import Toolbar from &#x27;../Toolbar/Toolbar&#x27;;&#xA;import AudioTranscript from &#x27;./AudioTranscript&#x27;;&#xA;&#xA;import { createFFmpeg, fetchFile } from &#x27;@ffmpeg/ffmpeg&#x27;;&#xA;&#xA;//Create ffmpeg instance and set &#x27;log&#x27; to true so we can see everything&#xA;//it does in the console&#xA;const ffmpeg = createFFmpeg({ log: true });&#xA;&#xA;const AudioEditor = () => {&#xA;    //Setup Global State and get most recent recording&#xA;    const { globalState } = useContext(Context);&#xA;    const { blobURL } = globalState;&#xA;&#xA;    //ready flag for when ffmpeg is loaded&#xA;    const [ready, setReady] = useState(false);&#xA;&#xA;    const [outputFileURL, setOutputFileURL] = useState(&#x27;&#x27;);&#xA;&#xA;    //Load FFmpeg asynchronously and set ready when it&#x27;s ready&#xA;    const load = async () => {&#xA;        await ffmpeg.load();&#xA;        setReady(true);&#xA;    }&#xA;&#xA;    //Use UseEffect to run the &#x27;load&#x27; function on mount&#xA;    useEffect(() => {&#xA;        load();&#xA;    }, []);&#xA;&#xA;    const ffmpegTest = async () => {&#xA;        //must first write file to memory as test.mp3&#xA;        ffmpeg.FS(&#x27;writeFile&#x27;, &#x27;test.mp3&#x27;, await fetchFile(blobURL));&#xA;&#xA;        //Run the FFmpeg command&#xA;        //in this case, trim file size down to 1.5s and save to memory as output.mp3&#xA;        ffmpeg.run(&#x27;-i&#x27;, &#x27;test.mp3&#x27;, &#x27;-t&#x27;, &#x27;1.5&#x27;, &#x27;output.mp3&#x27;);&#xA;&#xA;        //Read the result from memory&#xA;        const data = ffmpeg.FS(&#x27;readFile&#x27;, &#x27;output.mp3&#x27;);&#xA;&#xA;        //Create URL so it can be used in the browser&#xA;        const url = URL.createObjectURL(new Blob([data.buffer], { type: &#x27;audio/mp3&#x27; }));&#xA;        setOutputFileURL(url);&#xA;    }&#xA;&#xA;    return ready ? ( &#xA;        <div>&#xA;            <audiotranscript></audiotranscript>&#xA;            <toolbar></toolbar>&#xA;            <button>&#xA;                Edit&#xA;            </button>&#xA;            {outputFileURL &amp;&amp; &#xA;                &#xA;            }&#xA;        </div>&#xA;    ) : (&#xA;        <div>&#xA;            Loading...&#xA;        </div>&#xA;    )&#xA;}&#xA;&#xA;export default AudioEditor;&#xA;

    &#xA;

    This code returns the following error when I press the edit button to call the ffmpegTest function :&#xA;enter image description here

    &#xA;

    I've experimented, and when I tweak the culprit line of code to :

    &#xA;

    const data = ffmpeg.FS(&#x27;readFile&#x27;, &#x27;test.mp3&#x27;);&#xA;

    &#xA;

    the function runs without error, simply returning the input file. So I assume there must be something wrong with ffmpeg.run() line not storing 'output.mp3' in memory perhaps ? I can't for the life of me figure out what's going on...any help would be appreciated !

    &#xA;

  • How to fix "Cannot find a valid font for the family Sans' while adding text on image using react-native-ffmpeg

    13 mai 2024, par coffee

    I am trying to add text on image using the code below&#xA;RNFFmpeg&#xA;.execute(`-y -i ${input} -vf "drawtext=text=&#x27;Hello World&#x27;:fontcolor=white:fontsize=75:x=0:y=0" ${output}`) ;

    &#xA;

    I am not using any custom font but still get this error.

    &#xA;

    Error :

    &#xA;

    [Parsed_drawtext_0 @ 0x7f87a1ce40] Cannot find a valid font for the family Sans

    &#xA;

    index.js:115 [AVFilterGraph @ 0x7f6765e760] Error initializing filter 'drawtext'&#xA;index.js:115 [AVFilterGraph @ 0x7f6765e760] with args 'text=Hello World:fontcolor=white:fontsize=75:x=0:y=0'&#xA;index.js:115 [AVFilterGraph @ 0x7f6765e760]

    &#xA;

    index.js:115 Error reinitializing filters !

    &#xA;

    index.js:115 Failed to inject frame into filter network : No such file or directory

    &#xA;

    index.js:115 Error while processing the decoded data for stream #0:0

    &#xA;

    Note :

    &#xA;

    I also tried using a custom font but not able to do it.&#xA;When I use RNFFmpegConfig.setFontDirectory('../../assets/fonts') function and with it the following code to add text on image&#xA;RNFFmpeg&#xA;.execute(`-y -i ${input} -vf "drawtext=text=&#x27;Hello World&#x27;:fontfile=&#x27;../../assets/fonts/MyFont.ttf&#x27;:fontcolor=white:fontsize=75:x=0:y=0" ${output}`) ;

    &#xA;

    It gives me the same error.

    &#xA;

    How can I fix this issue.

    &#xA;