Recherche avancée

Médias (0)

Mot : - Tags -/flash

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (104)

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

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

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

Sur d’autres sites (11662)

  • ffmpeg trouble with NetMaui and Android [closed]

    15 juin 2024, par Billy Vanegas

    I find myself in a following predicament. While I work with Visual Studio 2022, ffmpeg performs flawlessly on Windows platform. However, I'm encountering difficulties when attempting to replicate this functionality on Android. Despite exploring NuGet packages like FFMpegCore, which seem to be ffmpeg wrappers but lack ffmpeg itself, I'm still struggling to find a clear path forward. I've even tried integrating ffmpeg-kit for Android as per the instructions, only to face repeated failures and a sense of confusion. I must admit my puzzlement : why isn't there a straightforward method to seamlessly add ffmpeg to a .NET MAUI project that functions consistently across both iOS and Android platforms ?

    


    I want to convert MP3 files to WAV format using FFmpeg on the Android platform within a .NET MAUI project.

    


    I am using the FFmpegCore library and have downloaded the FFmpeg binaries from the official FFmpeg website. However, I encountered issues when attempting to pass the binary folder on the emulator, when I try to pass it, I get permission denied in working folder :
/data/user/0/com.companyname.projectname/files/ffmpeg on this part of code :

    


             await FFMpegArguments
               .FromFileInput(mp3Path)
               .OutputToFile(wavPath, true, options => options
                   .WithAudioCodec("pcm_s16le")
                   .WithAudioSamplingRate(44100)
                   .WithAudioBitrate(320000)
                   )
               .ProcessAsynchronously();


    


    This is the AndroidManifest.xml

    


    &lt;?xml version="1.0" encoding="utf-8"?>&#xA;<manifest>&#xA;    <application></application>&#xA;    &#xA;    &#xA;    &#xA;    &#xA;</manifest>&#xA;

    &#xA;

     private async Task ConvertMp3ToWav(string mp3Path, string wavPath)&#xA; {&#xA;     try&#xA;     {&#xA;         var directory = Path.GetDirectoryName(wavPath);&#xA;         if (!Directory.Exists(directory))&#xA;             Directory.CreateDirectory(directory!);&#xA;         if (!File.Exists(wavPath))&#xA;             Console.WriteLine($"File not found {wavPath}, creating empty file.");&#xA;             using var fs = new FileStream(wavPath, FileMode.CreateNew);&#xA;         if (!File.Exists(mp3Path))&#xA;             Console.WriteLine($"File not found {mp3Path}");&#xA;&#xA;         string? ffmpegBinaryPath = await ExtractFFmpegBinaries(Platform.AppContext);&#xA;         FFMpegCore.GlobalFFOptions.Configure(new FFOptions { BinaryFolder = Path.GetDirectoryName(ffmpegBinaryPath!)! });&#xA;&#xA;         await FFMpegArguments&#xA;               .FromFileInput(mp3Path)&#xA;               .OutputToFile(wavPath, true, options => options&#xA;                   .WithAudioCodec("pcm_s16le")&#xA;                   .WithAudioSamplingRate(44100)&#xA;                   .WithAudioBitrate(320000)&#xA;                   )&#xA;               .ProcessAsynchronously();&#xA;     }&#xA;     catch (Exception ex)&#xA;     {&#xA;         Console.WriteLine($"An error occurred during the conversion process: {ex.Message}");&#xA;         throw;&#xA;     }&#xA; }&#xA;

    &#xA;

        private async Task<string> ExtractFFmpegBinaries(Context context)&#xA;    {&#xA;        var architectureFolder = "x86"; // "armeabi-v7a";&#xA;        var ffmpegBinaryName = "ffmpeg"; &#xA;        var ffmpegBinaryPath = Path.Combine(context.FilesDir!.AbsolutePath, ffmpegBinaryName);&#xA;        var tempFFMpegFileName = Path.Combine(FileSystem.AppDataDirectory, ffmpegBinaryName);&#xA;&#xA;        if (!File.Exists(ffmpegBinaryPath))&#xA;        {&#xA;            try&#xA;            {&#xA;                var assetPath = $"Libs/{architectureFolder}/{ffmpegBinaryName}";&#xA;                using var assetStream = context.Assets!.Open(assetPath);&#xA;               &#xA;                await using var tempFFMpegFile = File.OpenWrite(tempFFMpegFileName);&#xA;                await assetStream.CopyToAsync(tempFFMpegFile);&#xA;&#xA;                //new MainActivity().RequestStoragePermission();&#xA;                Java.Lang.Runtime.GetRuntime()!.Exec($"chmod 755 {tempFFMpegFileName}");&#xA;            }&#xA;            catch (Exception ex)&#xA;            {&#xA;                Console.WriteLine($"An error occurred while extracting FFmpeg binaries: {ex.Message}");&#xA;                throw;&#xA;            }&#xA;        }&#xA;        else&#xA;        {&#xA;            Console.WriteLine($"FFmpeg binaries already extracted to: {ffmpegBinaryPath}");&#xA;        }&#xA;&#xA;        return tempFFMpegFileName!;&#xA;    }&#xA;</string>

    &#xA;

  • Problems with Python's azure.cognitiveservices.speech when installing together with FFmpeg in a Linux web app

    15 mai 2024, par Kakobo kakobo

    I need some help.&#xA;I'm building an web app that takes any audio format, converts into a .wav file and then passes it to 'azure.cognitiveservices.speech' for transcription.I'm building the web app via a container Dockerfile as I need to install ffmpeg to be able to convert non ".wav" audio files to ".wav" (as azure speech services only process wav files). For some odd reason, the 'speechsdk' class of 'azure.cognitiveservices.speech' fails to work when I install ffmpeg in the web app. The class works perfectly fine when I install it without ffpmeg or when i build and run the container in my machine.

    &#xA;

    I have placed debug print statements in the code. I can see the class initiating, for some reason it does not buffer in the same when when running it locally in my machine. The routine simply stops without any reason.

    &#xA;

    Has anybody experienced a similar issue with azure.cognitiveservices.speech conflicting with ffmpeg ?

    &#xA;

    Here's my Dockerfile :

    &#xA;

    # Use an official Python runtime as a parent imageFROM python:3.11-slim&#xA;&#xA;#Version RunRUN echo "Version Run 1..."&#xA;&#xA;Install ffmpeg&#xA;&#xA;RUN apt-get update &amp;&amp; apt-get install -y ffmpeg &amp;&amp; # Ensure ffmpeg is executablechmod a&#x2B;rx /usr/bin/ffmpeg &amp;&amp; # Clean up the apt cache by removing /var/lib/apt/lists saves spaceapt-get clean &amp;&amp; rm -rf /var/lib/apt/lists/*&#xA;&#xA;//Set the working directory in the container&#xA;&#xA;WORKDIR /app&#xA;&#xA;//Copy the current directory contents into the container at /app&#xA;&#xA;COPY . /app&#xA;&#xA;//Install any needed packages specified in requirements.txt&#xA;&#xA;RUN pip install --no-cache-dir -r requirements.txt&#xA;&#xA;//Make port 80 available to the world outside this container&#xA;&#xA;EXPOSE 8000&#xA;&#xA;//Define environment variable&#xA;&#xA;ENV NAME World&#xA;&#xA;//Run main.py when the container launches&#xA;&#xA;CMD ["streamlit", "run", "main.py", "--server.port", "8000", "--server.address", "0.0.0.0"]`and here&#x27;s my python code:&#xA;

    &#xA;

    def transcribe_audio_continuous_old(temp_dir, audio_file, language):&#xA;    speech_key = azure_speech_key&#xA;    service_region = azure_speech_region&#xA;&#xA;    time.sleep(5)&#xA;    print(f"DEBUG TIME BEFORE speechconfig")&#xA;&#xA;    ran = generate_random_string(length=5)&#xA;    temp_file = f"transcript_key_{ran}.txt"&#xA;    output_text_file = os.path.join(temp_dir, temp_file)&#xA;    speech_recognition_language = set_language_to_speech_code(language)&#xA;    &#xA;    speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)&#xA;    speech_config.speech_recognition_language = speech_recognition_language&#xA;    audio_input = speechsdk.AudioConfig(filename=os.path.join(temp_dir, audio_file))&#xA;        &#xA;    speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_input, language=speech_recognition_language)&#xA;    done = False&#xA;    transcript_contents = ""&#xA;&#xA;    time.sleep(5)&#xA;    print(f"DEBUG TIME AFTER speechconfig")&#xA;    print(f"DEBUG FIle about to be passed {audio_file}")&#xA;&#xA;    try:&#xA;        with open(output_text_file, "w", encoding=encoding) as file:&#xA;            def recognized_callback(evt):&#xA;                print("Start continuous recognition callback.")&#xA;                print(f"Recognized: {evt.result.text}")&#xA;                file.write(evt.result.text &#x2B; "\n")&#xA;                nonlocal transcript_contents&#xA;                transcript_contents &#x2B;= evt.result.text &#x2B; "\n"&#xA;&#xA;            def stop_cb(evt):&#xA;                print("Stopping continuous recognition callback.")&#xA;                print(f"Event type: {evt}")&#xA;                speech_recognizer.stop_continuous_recognition()&#xA;                nonlocal done&#xA;                done = True&#xA;            &#xA;            def canceled_cb(evt):&#xA;                print(f"Recognition canceled: {evt.reason}")&#xA;                if evt.reason == speechsdk.CancellationReason.Error:&#xA;                    print(f"Cancellation error: {evt.error_details}")&#xA;                nonlocal done&#xA;                done = True&#xA;&#xA;            speech_recognizer.recognized.connect(recognized_callback)&#xA;            speech_recognizer.session_stopped.connect(stop_cb)&#xA;            speech_recognizer.canceled.connect(canceled_cb)&#xA;&#xA;            speech_recognizer.start_continuous_recognition()&#xA;            while not done:&#xA;                time.sleep(1)&#xA;                print("DEBUG LOOPING TRANSCRIPT")&#xA;&#xA;    except Exception as e:&#xA;        print(f"An error occurred: {e}")&#xA;&#xA;    print("DEBUG DONE TRANSCRIPT")&#xA;&#xA;    return temp_file, transcript_contents&#xA;

    &#xA;

    The transcript this callback works fine locally, or when installed without ffmpeg in the linux web app. Not sure why it conflicts with ffmpeg when installed via container dockerfile. The code section that fails can me found on note #NOTE DEBUG"

    &#xA;

  • ffmpeg concatenation with -filter_complex

    16 octobre 2018, par Igniter

    I’ve seen several similar questions but none of them actually helped in my case.
    Getting this error while trying to join 1 audio and 4 video files of different nature and resolutions.

    ffmpeg -i 0.mp3 -i 1.mp4 -i 2.mkv -i 3.mkv -i 4.webm \
       -filter_complex [0:a:0][1:v:0][2:v:0][3:v:0][4:v:0]concat=n=5:v=1:a=1[outv][outa] \
       -map "[outv]" -map "[outa]" output.mp4

    All this gives the following error :

    Stream specifier ':a:0' in filtergraph description [0:a:0][1:v:0][2:v:0][3:v:0][4:v:0]concat=n=5:v=1:a=1[outv][outa] matches no streams.

    Straight concatenation -i "concat:0.mp3|1.mp4..." also doesn’t work as expected due to different resolutions and video formats. All methods syntax was taken from official documentation but there should be something that I’ve missed here.

    Full output log :

    ffmpeg version 3.4.4-0ubuntu0.18.04.1 Copyright (c) 2000-2018 the FFmpeg developers
     built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
     configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
     libavutil      55. 78.100 / 55. 78.100
     libavcodec     57.107.100 / 57.107.100
     libavformat    57. 83.100 / 57. 83.100
     libavdevice    57. 10.100 / 57. 10.100
     libavfilter     6.107.100 /  6.107.100
     libavresample   3.  7.  0 /  3.  7.  0
     libswscale      4.  8.100 /  4.  8.100
     libswresample   2.  9.100 /  2.  9.100
     libpostproc    54.  7.100 / 54.  7.100
    Input #0, mp3, from 'mp3/10.mp3':
     Metadata:
       album_artist    : artist
       title           : title
       artist          : 10
       album           : 12
       track           : 1
       VideoKind       : 2
       date            : 2009
     Duration: 00:06:00.44, start: 0.025056, bitrate: 64 kb/s
       Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 64 kb/s
       Metadata:
         encoder         : LAME3.98r
       Stream #0:1: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 200x200 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
       Metadata:
         comment         : Cover (front)
    Input #1, matroska,webm, from '1.mp4':
     Metadata:
       MINOR_VERSION   : 0
       COMPATIBLE_BRANDS: iso6avc1mp41
       MAJOR_BRAND     : dash
       ENCODER         : Lavf57.83.100
     Duration: 00:01:53.05, start: 0.007000, bitrate: 2292 kb/s
       Stream #1:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 1k tbn, 48 tbc (default)
       Metadata:
         HANDLER_NAME    : VideoHandler
         DURATION        : 00:01:53.048000000
    Input #2, matroska,webm, from '2.mkv':
     Metadata:
       MINOR_VERSION   : 0
       COMPATIBLE_BRANDS: iso6avc1mp41
       MAJOR_BRAND     : dash
       ENCODER         : Lavf57.83.100
     Duration: 00:02:08.09, start: 0.007000, bitrate: 1607 kb/s
       Stream #2:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 1k tbn, 48 tbc (default)
       Metadata:
         HANDLER_NAME    : VideoHandler
         DURATION        : 00:02:08.090000000
    Input #3, matroska,webm, from '3.mkv':
     Metadata:
       MINOR_VERSION   : 0
       COMPATIBLE_BRANDS: iso6avc1mp41
       MAJOR_BRAND     : dash
       ENCODER         : Lavf57.83.100
     Duration: 00:01:37.05, start: 0.007000, bitrate: 3525 kb/s
       Stream #3:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 1k tbn, 48 tbc (default)
       Metadata:
         HANDLER_NAME    : VideoHandler
         DURATION        : 00:01:37.048000000
    Input #4, matroska,webm, from '4.webm':
     Metadata:
       MINOR_VERSION   : 0
       COMPATIBLE_BRANDS: iso6avc1mp41
       MAJOR_BRAND     : dash
       ENCODER         : Lavf57.83.100
     Duration: 00:01:45.13, start: 0.007000, bitrate: 3685 kb/s
       Stream #4:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 1k tbn, 48 tbc (default)
       Metadata:
         HANDLER_NAME    : VideoHandler
         DURATION        : 00:01:45.131000000
    Stream specifier ':a:0' in filtergraph description [0:a:0][1:v:0][2:v:0][3:v:0][4:v:0]concat=n=5:v=1:a=1[outv][outa] matches no streams.