Recherche avancée

Médias (1)

Mot : - Tags -/swfupload

Autres articles (99)

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

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

  • 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 ;

Sur d’autres sites (9699)

  • How to execute this CMD Script in a Batch File ?

    10 août 2024, par Edgar Ferreira

    


    I am trying to make a batch file that when executes makes a list named VideosToJoin.txt of the files with the extension .mp4, .mts and .avi in the folder and the after that proceed with the concat of those same files creating a final one named FinalVideo.mp4
I need some help here, because i want to automatize a specific process...

    


    (for %i in (*.mp4,*.mts,*.avi) do @echo file '%i') > VideosToJoin.txt   
  
ffmpeg -f concat -i VideosToJoin.txt -c copy FinalVideo.mp4


    


    The expected result is to have the final video by executing just one file, that's all i want, please help.

    


  • How to extract audio from video with ffmpegKit in flutter

    8 juillet 2024, par Carlos Peñaranda

    I want to extract audio from video with this method :

    


     Future<audio> extractAudio(Video video, String formatAudioByUser) async {&#xA;   &#xA;    final pathAudio = video.pathIn;&#xA;&#xA;    FFmpegKit.execute(&#xA;            &#x27;-i ${video.pathIn} -q:a 0 -map a audio_${video.title}.mp3&#x27;)&#xA;        .then((session) async {&#xA;      final returnCode = await session.getReturnCode();&#xA;&#xA;      if (ReturnCode.isSuccess(returnCode)) {&#xA;        Fluttertoast.showToast(msg: &#x27;Extraccion exitosa&#x27;);&#xA;      } else if (ReturnCode.isCancel(returnCode)) {&#xA;        Fluttertoast.showToast(msg: &#x27;Extraccion cancelada&#x27;);&#xA;      } else {&#xA;        final error = await session.getFailStackTrace();&#xA;        Fluttertoast.showToast(msg: &#x27;Fallo al extraer audio: $error&#x27;);&#xA;      }&#xA;    });&#xA;&#xA;//creates object&#xA;  final audio = Audio(&#xA;      id: &#x27;audio_${video.id}&#x27;,&#xA;      title: &#x27;audio_${video.title}&#x27;,&#xA;      duration: video.duration,&#xA;      pathIn: video.pathIn, &#xA;      pathOut:pathAudio,&#xA;      format: formatAudioByUser,&#xA;    );&#xA;    &#xA;    return audio;&#xA;  }&#xA;</audio>

    &#xA;

    which i use in my datasource_impl.

    &#xA;

    But when choosing the media (video) and running the method, it doesn't work from the ffmpegkit script, and it shows this error : "Fallo al extraer audio: null"

    &#xA;

    I've reviewed the debugging mode, and created brakpoints, but all the video data looks good.

    &#xA;

  • How to add a subtitle to a video using ffmpeg in Flutter ?

    3 juillet 2024, par Mohammed Bekele

    I'm using flutter_ffmpeg_kit_full package to add subtitles to my video. First I loop through all words and create an srt file and stored it in temp folder :

    &#xA;

     Future<string> _createSrtFile() async {&#xA;    String filePath = await getSrtOutputFilePath();&#xA;&#xA;    final file = File(filePath);&#xA;    final buffer = StringBuffer();&#xA;&#xA;    for (int i = 0; i &lt; widget.words.length; i&#x2B;&#x2B;) {&#xA;      final word = widget.words[i];&#xA;      final startTime = _formatSrtTime(word[&#x27;startTime&#x27;].toDouble());&#xA;      final endTime = _formatSrtTime(word[&#x27;endTime&#x27;].toDouble());&#xA;      final text = word[&#x27;word&#x27;];&#xA;&#xA;      buffer.writeln(&#x27;${i &#x2B; 1}&#x27;);&#xA;      buffer.writeln(&#x27;$startTime --> $endTime&#x27;);&#xA;      buffer.writeln(&#x27;$text&#x27;);&#xA;      buffer.writeln(&#x27;&#x27;);&#xA;    }&#xA;&#xA;    await file.writeAsString(buffer.toString());&#xA;    return filePath;&#xA;  }&#xA;&#xA;  String _formatSrtTime(double seconds) {&#xA;    final int hours = seconds ~/ 3600;&#xA;    final int minutes = ((seconds % 3600) ~/ 60);&#xA;    final int secs = (seconds % 60).toInt();&#xA;    final int millis = ((seconds - secs) * 1000).toInt() % 1000;&#xA;&#xA;    return &#x27;${hours.toString().padLeft(2, &#x27;0&#x27;)}:${minutes.toString().padLeft(2, &#x27;0&#x27;)}:${secs.toString().padLeft(2, &#x27;0&#x27;)},${millis.toString().padLeft(3, &#x27;0&#x27;)}&#x27;;&#xA;  }&#xA;</string>

    &#xA;

    Then I create a future function to handle the export by using ffmpeg command :

    &#xA;

    Future<void> _exportVideo() async {&#xA;    final hasPermission = await _requestStoragePermission();&#xA;    if (!hasPermission) {&#xA;      ScaffoldMessenger.of(context).showSnackBar(&#xA;          const SnackBar(content: Text(&#x27;Storage permission denied&#x27;)));&#xA;      return;&#xA;    }&#xA;&#xA;    setState(() {&#xA;      _isProcessing = true;&#xA;      _outputFilePath = "";&#xA;    });&#xA;&#xA;    try {&#xA;      final srtFilePath = await _createSrtFile();&#xA;&#xA;      String videoPath = widget.videoFile!.path;&#xA;&#xA;      String _outputPath = await getOutputFilePath();&#xA;&#xA;      final command =&#xA;          &#x27;-i $videoPath -vf "drawtext="text=\&#x27;Stack Overflow\&#x27;:fontcolor=white:fontsize=24:box=1:boxcolor=black@0.5:boxborderw=5:x=(w-text_w)/2:y=(h-text_h)/2"" -codec:a copy $_outputPath&#x27;;&#xA;&#xA;      // final cmd = [&#xA;      //   &#x27;-i&#x27;,&#xA;      //   videoPath,&#xA;      //   &#x27;-preset&#x27;,&#xA;      //   &#x27;ultrafast&#x27;,&#xA;      //   &#x27;-vf&#x27;,&#xA;      //   &#x27;subtitles=$srtFilePath:force_style=\&#x27;Fontname=Roboto Bold,FontSize=30,MarginV=70,PrimaryColour=ffffff,OutlineColour=000000\&#x27;&#x27;,&#xA;      //   _outputPath&#xA;      // ];&#xA;      // FFmpegKit.executeWithArguments(cmd)&#xA;&#xA;      print(&#x27;Executing FFmpeg command: $command&#x27;);&#xA;&#xA;      await FFmpegKit.execute(command).then((session) async {&#xA;        final returnCode = await session.getReturnCode();&#xA;        final output = await session.getOutput();&#xA;        final failStackTrace = await session.getFailStackTrace();&#xA;&#xA;        print(&#x27;FFmpeg Output: $output&#x27;);&#xA;        if (failStackTrace != null) {&#xA;          print(&#x27;FFmpeg Fail StackTrace: $failStackTrace&#x27;);&#xA;        }&#xA;&#xA;        if (ReturnCode.isSuccess(returnCode)) {&#xA;          setState(() {&#xA;            _outputFilePath = _outputPath;&#xA;          });&#xA;          ScaffoldMessenger.of(context).showSnackBar(&#xA;              const SnackBar(content: Text(&#x27;Export successful!&#x27;)));&#xA;        } else {&#xA;          final logs = await session.getLogsAsString();&#xA;          print(&#x27;FFmpeg Logs: $logs&#x27;);&#xA;          ScaffoldMessenger.of(context)&#xA;              .showSnackBar(const SnackBar(content: Text(&#x27;Export failed!&#x27;)));&#xA;        }&#xA;      });&#xA;    } catch (e) {&#xA;      print(&#x27;Error: $e&#x27;);&#xA;      ScaffoldMessenger.of(context).showSnackBar(&#xA;          SnackBar(content: Text(&#x27;Export failed with error: $e&#x27;)));&#xA;    } finally {&#xA;      setState(() {&#xA;        _isProcessing = false;&#xA;      });&#xA;    }&#xA;  }&#xA;</void>

    &#xA;

    I did the export without the subtitles and it works. but the issue is when I try to do it with subtitles. I don't know what fault I'm making but this code is failing to export. Here is the path for the srt and video itself :

    &#xA;

      Future<string> getOutputFilePath() async {&#xA;    final Directory? downloadsDir = await getDownloadsDirectory();&#xA;    final timestamp = DateTime.now().millisecondsSinceEpoch;&#xA;    final name = "output-$timestamp.avi";&#xA;    return &#x27;${downloadsDir!.path}/$name&#x27;; // Save in downloads folder&#xA;  }&#xA;&#xA;  Future<string> getSrtOutputFilePath() async {&#xA;    final Directory? downloadsDir = await getDownloadsDirectory();&#xA;    final timestamp = DateTime.now().millisecondsSinceEpoch;&#xA;    final name = "caption-$timestamp.srt";&#xA;    return &#x27;${downloadsDir!.path}/$name&#x27;; // Save in downloads folder&#xA;  }&#xA;</string></string>

    &#xA;