Recherche avancée

Médias (2)

Mot : - Tags -/documentation

Autres articles (109)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs

    12 avril 2011, par

    La manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
    Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras.

Sur d’autres sites (14686)

  • Optimize ffmpeg overlay and loop filters

    5 novembre 2020, par Miro Barsocchi

    I have a video, video.mp4, of 30 seconds, and I have an audio that can change in length, audio.mp3.

    


    My final idea is to have an output video of a loop of video.mp4 for the total length of the audio.mp3, and an overlay of the waveform of the audio.mp3. What I've done is this, in a bash script :

    


    # calculate length of the audio and of the video
tot=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 audio.mp3)
vid=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 video.mp4)
# how many base video we need to loop into the waveform video?
repeattime=`echo "scale=0; ($tot+$vid-1)/$vid" | bc`

# ffmpeg final command
ffmpeg -stream_loop $repeattime -i video.mp4 -i audio.mp3 -filter_complex "[1:a]showwaves=s=1280x100:colors=Red:mode=cline:rate=25:scale=sqrt[outputwave]; [0:v][outputwave] overlay=0:main_h-overlay_h [out]" -map '[out]' -map '1:a' -c:a copy -y output.mp4


    


    Is there a better way to do it in a single ffmpeg command ? I know it exists the loop filter in ffmpeg, but it loops frames and I don't know the number of frames of the video.mp4. Also, using $repeattime can result in a number of loop longer then needed (because math calculation is done round up)

    


  • ffmpeg kit flutter IOS No such filter : 'drawtext' Error

    6 août 2023, par Patel Milan

    I am using ffmpeg_kit_flutter and apply drawtext filter on video but i am getting errors No such filter: 'drawtext'

    


    input video link is input.mp4

    


    This command it working

    


    ffmpeg -y -i input.mp4 -filter_complex '[0]scale=540:-1[s];[s]drawtext=text='your_text_here':fontsize=24:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2' output.mp4


    


    code sample is bellow

    


    /// Create Video With Text&#xA;Future<void> createVideoWithText() async {&#xA;  final file = File(&#x27;${(await getTemporaryDirectory()).path}/output.mp4&#x27;);&#xA;  String outPut = file.path;&#xA;&#xA;  String command = "-y -i $inputFilePath -filter_complex &#x27;[0]scale=540:-1[s];[s]drawtext=text=&#x27;MY_TEXT&#x27;:fontsize=24:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2&#x27; $outPut";&#xA;&#xA;  FFmpegKit.executeAsync(&#xA;    command,&#xA;    (session) async {&#xA;      final returnCode = await session.getReturnCode();&#xA;&#xA;      if (ReturnCode.isSuccess(returnCode)) {&#xA;print(&#x27;Success full add text on video&#x27;);&#xA;      }else{print(&#x27;Error to adding text on video&#x27;);}&#xA;    },&#xA;  );&#xA;}&#xA;</void>

    &#xA;

  • Fluent ffmpeg not running synchronously

    14 mai 2022, par sciencaholic

    I am writing a program where I need to process a video multiple times using ffmpeg. The ffmpeg codes (below) are inside a 'then' statement of a promise.

    &#xA;&#xA;

    ffmpeg(path)&#xA;  .size(&#x27;640x?&#x27;)&#xA;  .aspect(&#x27;1:1&#x27;)&#xA;  .autopad(&#x27;#682BAB&#x27;)&#xA;  .saveToFile(`${userDirPath}/11-${userFileName}`)&#xA;  .on(&#x27;end&#x27;, () => {&#xA;    ffmpeg()&#xA;      .input(&#x27;test-11-start.mp4&#x27;)&#xA;      .mergeAdd(`${userDirPath}/11-${userFileName}`)&#xA;      .mergeAdd(&#x27;test-11-end.mp4&#x27;)&#xA;      .mergeToFile(`${userDirPath}/11-final-${userFileName}`, &#x27;temp/&#x27;)&#xA;      .on(&#x27;end&#x27;, () => console.log(&#x27;FFmpeg done!&#x27;));&#xA;  });&#xA;

    &#xA;&#xA;

    There is another ffmpeg function after this (same, but with a different aspect ratio) and then, a 'then' statement with some other functions.

    &#xA;&#xA;

    The problem is that this ffmpeg function runs asynchronously, and the next statements (which use the resulting file of ffmpeg func) are executed before it finishes executing and so I want it to run synchronously. I've tried async await (below) but it still runs asynchronously. What is wrong with code ?

    &#xA;&#xA;

    async function ffmpegMerge() {&#xA;  try {&#xA;    await ffmpeg(path)&#xA;    .size(&#x27;640x?&#x27;)&#xA;    .aspect(&#x27;1:1&#x27;)&#xA;    .autopad(&#x27;#682BAB&#x27;)&#xA;    .saveToFile(`${userDirPath}/11-${userFileName}`)&#xA;    .on(&#x27;end&#x27;, () => {&#xA;      ffmpeg()&#xA;        .input(`test-11-start.mp4`)&#xA;        .mergeAdd(`${userDirPath}/11-${userFileName}`)&#xA;        .mergeAdd(`test-11-end.mp4`)&#xA;        .mergeToFile(`${userDirPath}/11-final-${userFileName}.mp4`, &#x27;temp/&#x27;)&#xA;        .on(&#x27;end&#x27;, () => console.log(&#x27;FFmpeg done!&#x27;));&#xA;    })&#xA;  }&#xA;  catch (err) {&#xA;    return Promise.reject(new Error(err));&#xA;  }&#xA;}&#xA;

    &#xA;