Recherche avancée

Médias (1)

Mot : - Tags -/embed

Autres articles (45)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire 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 (...)

  • MediaSPIP Player : les contrôles

    26 mai 2010, par

    Les contrôles à la souris du lecteur
    En plus des actions au click sur les boutons visibles de l’interface du lecteur, il est également possible d’effectuer d’autres actions grâce à la souris : Click : en cliquant sur la vidéo ou sur le logo du son, celui ci se mettra en lecture ou en pause en fonction de son état actuel ; Molette (roulement) : en plaçant la souris sur l’espace utilisé par le média (hover), la molette de la souris n’exerce plus l’effet habituel de scroll de la page, mais diminue ou (...)

Sur d’autres sites (7990)

  • Anomalie #4087 : Division par 0 dans couleurèsaturation avec couleur FFFFFF en majuscule

    3 février 2018, par jluc -

    Mais il y a aussi le cas où la couleur commence par #

    _couleur_hex_to_dec enlève le # avant de faire son boulot
    et donc pour ce test il faudrait AUSSI enlever le # s’il est là

    Au final, il serait plus simple de tester APRES la conversion et le calcul de max :
    if (max==0) max=1 ;

  • How to combine multiple Audio Files into single using ffmpeg_kit_flutter

    17 septembre 2023, par sunil kalwani

    I want to play multiple Audio files in a sequence to form a question for the users.
    
For that, I tried the AudioPlay package in the loop but they took some pause to play it in between which did not look good.

    


    So as the alternative I want to combine audio files into a single file to play.
    
For that I have used ffmpeg_kit_flutter package, but this returns 1 which means error in merging the files.

    


    List<string> assetAudioFiles = [&#xA;  &#x27;audio/S1B_1.mp3&#x27;, // Replace with the URLs or local paths of your audio files&#xA;  &#x27;audio/L2_31.mp3&#x27;,&#xA;  &#x27;audio/S1B_2.mp3&#x27;,&#xA;  &#x27;audio/L1s20.mp3&#x27;,&#xA;];&#xA;&#xA;Future> copyAssetFilesToStorage() async {&#xA;  List<string> localFilePaths = [];&#xA;&#xA;  for (String assetFile in assetAudioFiles) {&#xA;    String localFilePath = await copyAssetToFile(assetFile);&#xA;    localFilePaths.add(localFilePath);&#xA;  }&#xA;&#xA;  return localFilePaths;&#xA;}&#xA; &#xA;Future<string> copyAssetToFile(String assetFilePath) async {&#xA;  final ByteData data = await rootBundle.load(assetFilePath);&#xA;  final Directory tempDir = await getTemporaryDirectory();&#xA;  final File tempFile =&#xA;    File(&#x27;${tempDir.path}/${assetFilePath.split(&#x27;/&#x27;).last}&#x27;);&#xA;  await tempFile.writeAsBytes(data.buffer.asUint8List(), flush: true);&#xA;  return tempFile.path;&#xA;}&#xA; &#xA;Future<void> combineAudio(List<string> audioFiles) async {&#xA;  Directory tempDir = await getTemporaryDirectory();&#xA;  String tempPath = tempDir.path;&#xA;&#xA;  // Create a temporary output file path&#xA;  String combinedAudioPath = &#x27;$tempPath/output.mp3&#x27;;&#xA;&#xA;  // Prepare the FFmpeg command to concatenate audio files&#xA;  String inputFiles = audioFiles.join(&#x27;|&#x27;);&#xA;&#xA;  String command =&#xA;    &#x27;ffmpeg -i "concat:$inputFiles" -acodec copy $combinedAudioPath&#x27;;&#xA;&#xA;  var cmd2 =&#xA;    "-i ${audioFiles[0]} -i ${audioFiles[1]} -i ${audioFiles[2]} -filter_complex [0:0][1:0][2:0]concat=n=3:v=0:a=1[out] -map [out] $combinedAudioPath";&#xA;     &#xA;  FFmpegKit.execute(cmd2).then((session) async {&#xA;    print(&#x27;session $session&#x27;);&#xA;    final returnCode = await session.getReturnCode();&#xA;    print(&#x27;returnCode $returnCode&#x27;);&#xA;&#xA;    if (ReturnCode.isSuccess(returnCode)) {&#xA;     print(&#x27;Audio files merged successfully $returnCode&#x27;);&#xA;     // SUCCESS&#xA;    } else if (ReturnCode.isCancel(returnCode)) {&#xA;     print(&#x27;isCancel $returnCode&#x27;);&#xA;     // CANCEL&#xA;    } else {`enter code here`&#xA;     print(&#x27;Error merging audio files: $returnCode&#x27;);&#xA;     // audioPlayer.play(DeviceFileSource(outputFilePath));&#xA;    }&#xA;  });&#xA;}&#xA;  &#xA;void combineAndPlayAudio() async {&#xA;  List<string> localFilePaths = await copyAssetFilesToStorage();&#xA;  await combineAudio(localFilePaths); //localFilePaths&#xA;&#xA;  // Now you can play the combined audio using an audio player or other methods.&#xA;}&#xA;</string></string></void></string></string></string>

    &#xA;

    So can you please let me know how to combine multiple audio files into single or a way to play multiple audio in sequence ?

    &#xA;

  • How to use FFmpeg in android to edit video ? [closed]

    24 juillet 2023, par Rakesh Saini

    i am learning android. I tried the ffmpeg lib to merge the video and audio, but getting ffmpeg permission denied error. I search lot of but unable to find the solution.

    &#xA;

    Please anyone help if have the solution.

    &#xA;

            package com.example.mytestapp.Activity;&#xA;    &#xA;    import android.content.Context;&#xA;    import android.os.AsyncTask;&#xA;    import android.os.Environment;&#xA;    import android.util.Log;&#xA;    import com.github.hiteshsondhi88.libffmpeg.ExecuteBinaryResponseHandler;&#xA;    import com.github.hiteshsondhi88.libffmpeg.FFmpeg;&#xA;    import com.github.hiteshsondhi88.libffmpeg.exceptions.FFmpegCommandAlreadyRunningException;&#xA;    &#xA;    public class MergeAudioVideoTask extends AsyncTask {&#xA;        private static final String TAG = MergeAudioVideoTask.class.getSimpleName();&#xA;    &#xA;        private Context context;&#xA;        private String videoFilePath;&#xA;        private final String audioFilePath;&#xA;        private final String outputFilePath;&#xA;    &#xA;        public MergeAudioVideoTask(String videoFilePath, String audioFilePath, String outputFilePath) {&#xA;            this.videoFilePath = videoFilePath;&#xA;            this.audioFilePath = audioFilePath;&#xA;            this.outputFilePath = outputFilePath;&#xA;        }&#xA;    &#xA;    //    String inputAudioPath = "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3";&#xA;        String outputVideoPath = Environment.getExternalStorageDirectory() &#x2B; "/trimVideos" &#x2B; "sangtest.mp4";&#xA;    &#xA;    //    String[] command = {"-i", vpath, "-i", inputAudioPath, "-c:v", "copy", "-c:a", "aac", "-map", "0:v:0", "-map", "1:a:0", "-shortest", outputVideoPath};&#xA;    &#xA;    &#xA;        @Override&#xA;        protected Boolean doInBackground(Void... params) {&#xA;            String[] cmd = {"-i", videoFilePath, "-i", audioFilePath, "-shortest", outputVideoPath};&#xA;            try {&#xA;                FFmpeg.getInstance(context).execute(cmd, new ExecuteBinaryResponseHandler() {&#xA;                    @Override&#xA;                    public void onStart() {&#xA;                        Log.e("Started", "yes");&#xA;                    }&#xA;    &#xA;                    @Override&#xA;                    public void onProgress(String message) {&#xA;                        // do nothing&#xA;                    }&#xA;    &#xA;                    @Override&#xA;                    public void onFailure(String message) {&#xA;                        Log.e("Failed ", "yes");&#xA;                    }&#xA;    &#xA;                    @Override&#xA;                    public void onSuccess(String message) {&#xA;                        Log.e("Success ", "yes");&#xA;                    }&#xA;    &#xA;                    @Override&#xA;                    public void onFinish() {&#xA;                        // do nothing&#xA;                    }&#xA;                });&#xA;            } catch (FFmpegCommandAlreadyRunningException e) {&#xA;                e.printStackTrace();&#xA;            }&#xA;    &#xA;            return null;&#xA;        }&#xA;    &#xA;        @Override&#xA;        protected void onPostExecute(Boolean success) {&#xA;            if (success) {&#xA;            } else {&#xA;            }&#xA;        }&#xA;    &#xA;    }&#xA;

    &#xA;

    I am using this but getting 'permission denied error for ffmpeg' i have already added storage permission in manifiest.

    &#xA;