Recherche avancée

Médias (91)

Sur d’autres sites (97)

  • Flutter error in Ffmpeg, "Unhandled Exception : ProcessException : No such file or directory" in macOS desktop version

    19 avril, par pratik vekariya

    I'm trying video trim video using ffmpeg, for macOS desktop application.

    


    I have downloaded ffmpeg from here for macOS.

    


    Here is my code

    


        String mainPath = &#x27;Users/apple/Workspace/User/2024/Project/videoapp/build/macos/Build/Products/Debug/&#x27;;&#xA;        mainPath = mainPath.substring(0, mainPath.lastIndexOf("/"));&#xA;    &#xA;                  Directory directoryExe3 = Directory("$mainPath");&#xA;                  var dbPath = path.join(directoryExe3.path,&#xA;                      "App.framework/Resources/flutter_assets/assets/ffmpeg/ffmpegmacos");&#xA;//here in "Products/Debug/" folder desktop app will generate&#xA;&#xA;//directoryExe3 path will be, Users/apple/Workspace/User/2024/Project/videoapp/build/macos/Build/Products/Debug&#xA;&#xA;//and dbPath will be, Users/apple/Workspace/User/2024/Project/videoapp/build/macos/Build/Products/Debug/App.framework/Resources/flutter_assets/assets/ffmpeg/ffmpegmacos&#xA;&#xA;//so when app will run it can access it from this path&#xA;&#xA;//executable code, command for ffmpeg&#xA;&#xA;String transpose_str &#x2B;= "crop=" &#x2B;&#xA;              out_w.toInt().toString() &#x2B;&#xA;              ":" &#x2B;&#xA;              out_h.toInt().toString() &#x2B;&#xA;              ":" &#x2B;&#xA;              x!.toInt().toString() &#x2B;&#xA;              ":" &#x2B;&#xA;              y!.toInt().toString() &#x2B;&#xA;              ",";&#xA;          transpose_str &#x2B;= "scale=960:192";&#xA;&#xA;Future<processresult> result_ = Process.run(dbPath, [&#xA;                "-ss",&#xA;                timestamp,&#xA;                "-i",&#xA;                inputFilePath,&#xA;                "-t",&#xA;                endTime,&#xA;                "-vf",&#xA;                transpose_str,&#xA;                "-an",&#xA;                "./temp.mp4",&#xA;              ]); &#xA;</processresult>

    &#xA;

    Now when I run this in macOS desktop verison, it gives me error at Process.run that in dbPath, Unhandled Exception : ProcessException : No such file or directory.

    &#xA;

    Any help would be appreciate !

    &#xA;

    when i run this as desktop version it should get file from assets.

    &#xA;

  • Apache Tika 2.0.9 programm ffmpeg and exiftool not found ?

    6 avril, par mj44

    I use an JavaFX Maven Project to use Apache Tika Version 2.9.0.&#xA;The Java Test program will be finished and all methods that I create will done right.&#xA;I have in the log file a lot of DEBUG errors and Idon't know why ?&#xA;I habe spent many hours to clear the problem.

    &#xA;

    Here's an excerpt of the logfile

    &#xA;

    2024-04-03 14:56:12 [main] DEBUG org.apache.tika.parser.external.ExternalParser - exception trying to run  ffmpeg&#xA;java.io.IOException: Cannot run program "ffmpeg": CreateProcess error=2, Das System kann die angegebene Datei nicht finden&#xA;    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1140) ~[?:?]&#xA;    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1074) ~[?:?]&#xA;...&#xA;2024-04-03 14:56:12 [main] DEBUG org.apache.tika.parser.external.ExternalParser - exception trying to run  exiftool&#xA;java.io.IOException: Cannot run program "exiftool": CreateProcess error=2, Das System kann die angegebene Datei nicht finden&#xA;    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1140) ~[?:?]&#xA;    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1074) ~[?:?]&#xA;...&#xA;&#xA;

    &#xA;

    The message says that ffmpeg and exiftool are not found.

    &#xA;

    This is my tika-config.xml

    &#xA;

    &lt;?xml version="1.0" encoding="UTF-8"?>&#xA;<properties>&#xA;    <parsers>&#xA;        <parser class="org.apache.tika.parser.DefaultParser"></parser>&#xA;        <parser class="org.apache.tika.parser.pdf.PDFParser"></parser>&#xA;        &#xA;        <parser class="org.apache.tika.parser.external.ExternalParser">&#xA;            <params>&#xA;                true&#xA;                &#xA;                "D:\Tools\ffmpeg-6.1.1\bin\ffmpeg.exe"&#xA;            </params>&#xA;        </parser>&#xA;        &#xA;        <parser class="org.apache.tika.parser.external.ExternalParser">&#xA;            <params>&#xA;                true&#xA;                &#xA;                "D:\Tools\exiftool.exe"&#xA;            </params>&#xA;        </parser>&#xA;    </parsers>&#xA;    <detector>&#xA;        <detector class="org.apache.tika.detect.DefaultDetector"></detector>&#xA;    </detector>&#xA;</properties>&#xA;

    &#xA;

    I tested the path of the programms in a console ant it worked fine ?&#xA;I don't know what I can do now ?

    &#xA;

    Thanks for Help

    &#xA;

    I have downloaded new copies of the ffmpeg and exiftool and installed them.&#xA;I tested it in a console to run and both tools work fine.&#xA;I tested the permissions, no problems with permissions&#xA;I tested that the tika-config.xml will be loaded, it loaded.

    &#xA;

  • Struggling to add subtitles to a video using FFMPEG and C#

    19 mars, par MattHodson

    I'm trying to add subtitles to my videos, 100% with code using FFMPEG and C#.

    &#xA;

    But I'm getting the following error :

    &#xA;

    &#xA;

    ffmpeg version 2024-02-04-git-7375a6ca7b-essentials_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers&#xA;built with gcc 12.2.0 (Rev10, Built by MSYS2 project)&#xA;configuration : —enable-gpl —enable-version3 —enable-static —pkg-config=pkgconf —disable-w32threads —disable-autodetect —enable-fontconfig —enable-iconv —enable-gnutls —enable-libxml2 —enable-gmp —enable-bzlib —enable-lzma —enable-zlib —enable-libsrt —enable-libssh —enable-libzmq —enable-avisynth —enable-sdl2 —enable-libwebp —enable-libx264 —enable-libx265 —enable-libxvid —enable-libaom —enable-libopenjpeg —enable-libvpx —enable-mediafoundation —enable-libass —enable-libfreetype —enable-libfribidi —enable-libharfbuzz —enable-libvidstab —enable-libvmaf —enable-libzimg —enable-amf —enable-cuda-llvm —enable-cuvid —enable-ffnvcodec —enable-nvdec —enable-nvenc —enable-dxva2 —enable-d3d11va —enable-libvpl —enable-libgme —enable-libopenmpt —enable-libopencore-amrwb —enable-libmp3lame —enable-libtheora —enable-libvo-amrwbenc —enable-libgsm —enable-libopencore-amrnb —enable-libopus —enable-libspeex —enable-libvorbis —enable-librubberband&#xA;libavutil 58. 36.101 / 58. 36.101&#xA;libavcodec 60. 38.100 / 60. 38.100&#xA;libavformat 60. 20.100 / 60. 20.100&#xA;libavdevice 60. 4.100 / 60. 4.100&#xA;libavfilter 9. 17.100 / 9. 17.100&#xA;libswscale 7. 6.100 / 7. 6.100&#xA;libswresample 4. 13.100 / 4. 13.100&#xA;libpostproc 57. 4.100 / 57. 4.100&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C :\Users\Gamer\source\repos\XXXX\bin\Debug\net8.0\ce31c8ab-4b53-44e8-9e25-d02ba5466144\output.mp4' :&#xA;Metadata :&#xA;major_brand : isom&#xA;minor_version : 512&#xA;compatible_brands : isomiso2avc1mp41&#xA;encoder : Lavf60.20.100&#xA;Duration : 00:03:18.84, start : 0.000000, bitrate : 101 kb/s&#xA;Stream #0:00x1 : Video : h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1024x1792, 26 kb/s, 1 fps, 1 tbr, 16384 tbn (default)&#xA;Metadata :&#xA;handler_name : VideoHandler&#xA;vendor_id : [0][0][0][0]&#xA;encoder : Lavc60.38.100 libx264&#xA;Stream #0:10x2 : Audio : aac (LC) (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 74 kb/s (default)&#xA;Metadata :&#xA;handler_name : SoundHandler&#xA;vendor_id : [0][0][0][0]&#xA;[Parsed_subtitles_0 @ 000001a87404e3c0] Unable to parse option value "UsersGamersourcereposXXXXbinDebugnet8.0ce31c8ab-4b53-44e8-9e25-d02ba5466144output.srt" as image size&#xA;Error applying option 'original_size' to filter 'subtitles' : Invalid argument&#xA;[vost#0:0/libx264 @ 000001a874064a40] Error initializing a simple filtergraph&#xA;Error opening output file C :\Users\Gamer\source\repos\XXXX\bin\Debug\net8.0\ce31c8ab-4b53-44e8-9e25-d02ba5466144\videoWithSubtitles.mp4.&#xA;Error opening output files : Invalid argument

    &#xA;

    &#xA;

    It seems to be something related to paths, but I have tried EVERYTHING in my knowledge to fix this, still no luck... spent the majority of the day on it, no luck... so StackOverflow here I come !

    &#xA;

    My code :

    &#xA;

       public static async Task AddSubtitlesToVideoAsync(string videoPath, string subtitlesPath, string outputPath)&#xA;    {&#xA;        if (File.Exists(videoPath) &amp;&amp; File.Exists(subtitlesPath))&#xA;        {&#xA;            //string subtitlesPathForwardSlashes = subtitlesPath.Replace("\\", "/");&#xA;            //string ffmpegCommand = $"-i \"{videoPath}\" -filter_complex \"subtitles=&#x27;{subtitlesPathForwardSlashes}&#x27;\" \"{outputPath}\"";&#xA;            //string ffmpegCommand = $"-i \"{videoPath}\" -vf subtitles={subtitlesPathForwardSlashes} \"{outputPath}\"";&#xA;            //string ffmpegCommand = $"-i \"{videoPath}\" -vf subtitles=\"{subtitlesPath}\" \"{outputPath}\"";&#xA;            string subtitlesPathEscaped = subtitlesPath.Replace("\\", "\\\\");&#xA;            string ffmpegCommand = $"-i \"{videoPath}\" -vf subtitles=\"{subtitlesPathEscaped}\" \"{outputPath}\"";&#xA;&#xA;&#xA;            //output    -i C:\Users\Gamer\source\repos\XXXX\bin\Debug\net8.0\d745a08d-b932-47ac-a81c-45e9483590a7\output.mp4 -vf subtitles="C:/Users/Gamer/source/repos/XXXX/bin/Debug/net8.0/d745a08d-b932-47ac-a81c-45e9483590a7/generatedSubtitles.srt" C:\Users\Gamer\source\repos\XXXX\bin\Debug\net8.0\d745a08d-b932-47ac-a81c-45e9483590a7\videoWithSubtitles.mp4&#xA;            await ExecuteSubtitleCommandAsync(ffmpegCommand);&#xA;        }&#xA;        else&#xA;        {&#xA;            Console.WriteLine("Files can&#x27;t be found.");&#xA;        }&#xA;    }&#xA;&#xA;    public static async Task ExecuteSubtitleCommandAsync(string arguments)&#xA;    {&#xA;        string ffmpegExecutablePath = ffmpegRoot;&#xA;        var startInfo = new ProcessStartInfo(ffmpegExecutablePath, arguments)&#xA;        {&#xA;            CreateNoWindow = true,&#xA;            UseShellExecute = false,&#xA;            RedirectStandardOutput = true,&#xA;            RedirectStandardError = true&#xA;        };&#xA;&#xA;        using (var process = new Process { StartInfo = startInfo })&#xA;        {&#xA;            process.EnableRaisingEvents = true; // Enable the Exited event.&#xA;            process.Exited &#x2B;= (sender, e) =>&#xA;            {&#xA;                Console.WriteLine($"FFmpeg process exited with code {process.ExitCode}.");&#xA;            };&#xA;&#xA;            try&#xA;            {&#xA;                process.Start();&#xA;                // Asynchronously read the standard output and standard error of the process&#xA;                var outputTask = process.StandardOutput.ReadToEndAsync();&#xA;                var errorTask = process.StandardError.ReadToEndAsync();&#xA;                // Wait for both asynchronous tasks to complete&#xA;                await Task.WhenAll(outputTask, errorTask);&#xA;&#xA;                var output = await outputTask;&#xA;                var error = await errorTask;&#xA;&#xA;                if (!string.IsNullOrEmpty(error))&#xA;                {&#xA;                    Console.WriteLine("FFmpeg error: " &#x2B; error);&#xA;                }&#xA;                else&#xA;                {&#xA;                    Console.WriteLine("FFmpeg process completed successfully.");&#xA;                }&#xA;            }&#xA;            catch (Exception ex)&#xA;            {&#xA;                Console.WriteLine("Error: " &#x2B; ex.Message);&#xA;            }&#xA;            finally&#xA;            {&#xA;                // Wait for the process to exit if it hasn&#x27;t already.&#xA;                if (!process.HasExited)&#xA;                {&#xA;                    process.WaitForExit();&#xA;                }&#xA;            }&#xA;        }&#xA;    }&#xA;

    &#xA;