Recherche avancée

Médias (91)

Autres articles (16)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Gestion générale des documents

    13 mai 2011, par

    MédiaSPIP ne modifie jamais le document original mis en ligne.
    Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
    Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)

  • Les vidéos

    21 avril 2011, par

    Comme les documents de type "audio", Mediaspip affiche dans la mesure du possible les vidéos grâce à la balise html5 .
    Un des inconvénients de cette balise est qu’elle n’est pas reconnue correctement par certains navigateurs (Internet Explorer pour ne pas le nommer) et que chaque navigateur ne gère en natif que certains formats de vidéos.
    Son avantage principal quant à lui est de bénéficier de la prise en charge native de vidéos dans les navigateur et donc de se passer de l’utilisation de Flash et (...)

Sur d’autres sites (3113)

  • Amplification of recorded audio in flutter app using FFMPEG not working correctly

    20 mai 2024, par Noman khanbhai

    In my app I need to record audio and send it to server, server then sends the file to a hardware using mqtt and then file gets played on the hardware. I am using flutter to build app and using record 5.0.5 package for audio recording and for amplification ffmpeg_kit_flutter 6.0.3 package to do the amplification.

    


    The issue is it doesnt seems like there is much change in amplitude, I used different values for amplification factor but audio remains same.

    


    Here is the code for amplification

    


    Future<string>? amplifyAudio(&#xA;      String inputPath, String outputPath) async {&#xA;&#xA;    // Build FFmpeg command to amplify audio&#xA;    outputPath = await modifyOutputPath(inputPath)!;&#xA;    String audioFilter = &#x27;volume=${amplificationFactor}dB&#x27;; &#xA;    //-c:a aac&#xA;    String command = &#x27;-i $inputPath -af $audioFilter $outputPath&#x27;;&#xA;&#xA;    // Execute FFmpeg command&#xA;    await FFmpegKit.executeAsync(command).then((session) async {&#xA;      debugPrint("After executeAsync session ${session.toString()}");&#xA;      debugPrint(&#xA;          "After executeAsync returncode ${await session.getReturnCode()}");&#xA;      debugPrint("After executeAsync command ${session.getCommand()}");&#xA;      log("After executeAsync alllogs ${await session.getAllLogs()}");&#xA;      log("After executeAsync alllogstring ${await session.getAllLogsAsString()}");&#xA;      log("After executeAsync failStackTrace ${await session.getFailStackTrace()}");&#xA;    }).onError((error, stackTrace) {&#xA;      debugPrint("After executeAsync error ${error.toString()}");&#xA;    });&#xA;&#xA;    return outputPath;&#xA;  }&#xA;&#xA;</string>

    &#xA;

    This are the logs when above method gets executed.

    &#xA;

    FFMpeg command -> `-i /data/user/0/com.orgname.flutter.appname/app_flutter/1716209206469.aac -af volume=10.0dB /storage/emulated/0/Download/1716209213238_amplified.aac`&#xA;&#xA;> Logs&#xA;> After executeAsync alllogstring ffmpeg version n6.0 Copyright (c) 2000-2023 the FFmpeg developers&#xA;> built with Android (7155654, based on r399163b1) clang version 11.0.5 (https://android.googlesource.com/toolchain/llvm-project 87f1315dfbea7c137aa2e6d362dbb457e388158d)&#xA;> configuration: --cross-prefix=aarch64-linux-android- --sysroot=/Users/sue/Library/Android/sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/sysroot --prefix=/Users/sue/Projects/arthenica/ffmpeg-kit/prebuilt/android-arm64/ffmpeg --pkg-config=/opt/homebrew/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --target-os=android --enable-neon --enable-asm --enable-inline-asm --ar=aarch64-linux-android-ar --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang&#x2B;&#x2B; --ranlib=aarch64-linux-android-ranlib --strip=aarch64-linux-android-strip --nm=aarch64-linux-android-nm --extra-libs=&#x27;-L/Users/sue/Projects/arthenica/ffmpeg-kit/prebuilt/android-arm64/cpu-features/lib -lndk_compat&#x27; --disable-autodetect --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --disable-static --enable-shared --enable-pthreads --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-gmp --enable-gnutls --enable-iconv --disable-sdl2 --disable-openssl --enable-zlib --enable-mediacodec&#xA;> libavutil      58.  2.100 / 58.  2.100&#xA;> libavcodec     60.  3.100 / 60.  3.100&#xA;> libavformat    60.  3.100 / 60.  3.100&#xA;> libavdevice    60.  1.100 / 60.  1.100&#xA;> libavfilter     9.  3.100 /  9.  3.100&#xA;> libswscale      7.  1.100 /  7.  1.100&#xA;> libswresample   4. 10.100 /  4. 10.100&#xA;> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;/data/user/0/com.orgname.flutter.appname/app_flutter/1716209206469.aac&#x27;:&#xA;> Metadata:&#xA;> major_brand     : mp42&#xA;> minor_version   : 0&#xA;> compatible_brands: isommp42&#xA;> creation_time   : 2024-05-20T12:46:52.000000Z&#xA;> com.android.version: 12&#xA;> Duration: 00:00:04.76, start: 0.000000, bitrate: 131 kb/s&#xA;> Stream #0:0[0x1](eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)&#xA;> Metadata:&#xA;> creation_time   : 2024-05-20T12:46:52.000000Z&#xA;> handler_name    : SoundHandle&#xA;> vendor_id       : [0][0][0][0]&#xA;> Stream mapping:&#xA;> Stream #0:0 -> #0:0 (aac (native) -> aac (native))&#xA;> Press [q] to stop, [?] for help&#xA;

    &#xA;

    Note - I am also playing the audio after recording and before amplification in app, and also saving in download. to make sure audio file is correct.

    &#xA;

    Amplified file also gets saved but there is almost no difference.

    &#xA;

    I have also searched/googled/ and also done chatgpt to resolve issue. but nothing worked.

    &#xA;

  • ffprobe newer version detect audio codec incorrectly

    16 janvier, par alancc

    I find a strange problem.

    &#xA;

    I have a test video with h264 video codec and aac audio codec. It is at https://drive.google.com/file/d/1YAyz5cO0kb9r0MgahCpISR4bZ_1_n8PL/view?usp=sharing

    &#xA;

    I build a ffmpeg version by myself, its version is :

    &#xA;

    ffprobe version 7.0.2 Copyright (c) 2007-2024 the FFmpeg developers&#xA;  built with gcc 14.1.0 (Rev3, Built by MSYS2 project)&#xA;  configuration: --enable-shared&#xA;  libavutil      59.  8.100 / 59.  8.100&#xA;  libavcodec     61.  3.100 / 61.  3.100&#xA;  libavformat    61.  1.100 / 61.  1.100&#xA;  libavdevice    61.  1.100 / 61.  1.100&#xA;  libavfilter    10.  1.100 / 10.  1.100&#xA;  libswscale      8.  1.100 /  8.  1.100&#xA;  libswresample   5.  1.100 /  5.  1.100&#xA;

    &#xA;

    I then use ffprobe to get its info :

    &#xA;

    ffprobe -v quiet -print_format ini -show_streams -show_packets test_h264.mp4 > test_h264.ini&#xA;

    &#xA;

    Then I get an ini file which shows the audio codec as MP2 :

    &#xA;

    [streams.stream.0]&#xA;index=0&#xA;codec_name=mp2&#xA;codec_long_name=MP2 (MPEG audio layer 2)&#xA;profile=unknown&#xA;codec_type=audio&#xA;codec_tag_string=mp4a&#xA;codec_tag=0x6134706d&#xA;sample_fmt=fltp&#xA;sample_rate=44100&#xA;channels=2&#xA;channel_layout=stereo&#xA;bits_per_sample=0&#xA;initial_padding=0&#xA;id=0x1&#xA;r_frame_rate=0/0&#xA;avg_frame_rate=0/0&#xA;time_base=1/44100&#xA;start_pts=2788&#xA;start_time=0.063220&#xA;duration_ts=435455&#xA;duration=9.874263&#xA;bit_rate=127706&#xA;max_bit_rate=N/A&#xA;bits_per_raw_sample=N/A&#xA;nb_frames=378&#xA;nb_read_frames=N/A&#xA;nb_read_packets=378&#xA;

    &#xA;

    Another developer he uses his version of ffprobe :

    &#xA;

    ffprobe version 2023-02-22-git-d5cc7acff1-full_build-www.gyan.dev Copyright (c) 2007-2023 the FFmpeg developers  &#xA;

    &#xA;

    Based on the year, my version(2024) should be newer than his(2023), but his version of ffprobe can get the audio codec properly :

    &#xA;

    [streams.stream.1]&#xA;index=1&#xA;codec_name=aac&#xA;codec_long_name=AAC (Advanced Audio Coding)&#xA;profile=LC&#xA;codec_type=audio&#xA;codec_tag_string=mp4a&#xA;codec_tag=0x6134706d&#xA;sample_fmt=fltp&#xA;sample_rate=44100&#xA;channels=2&#xA;channel_layout=stereo&#xA;bits_per_sample=0&#xA;initial_padding=0&#xA;id=0x2&#xA;r_frame_rate=0/0&#xA;avg_frame_rate=0/0&#xA;time_base=1/44100&#xA;start_pts=1764&#xA;start_time=0.040000&#xA;duration_ts=436480&#xA;duration=9.897506&#xA;bit_rate=111733&#xA;max_bit_rate=N/A&#xA;bits_per_raw_sample=N/A&#xA;nb_frames=427&#xA;nb_read_frames=N/A&#xA;nb_read_packets=427&#xA;extradata_size=5&#xA;

    &#xA;

    Why ?

    &#xA;

    I also tried a ffprobe version on ubuntu with the following version :

    &#xA;

    ffprobe version 6.1.1-3ubuntu5 Copyright (c) 2007-2023 the FFmpeg developers&#xA;  built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)&#xA;  configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared&#xA;  libavutil      58. 29.100 / 58. 29.100&#xA;  libavcodec     60. 31.102 / 60. 31.102&#xA;  libavformat    60. 16.100 / 60. 16.100&#xA;  libavdevice    60.  3.100 / 60.  3.100&#xA;  libavfilter     9. 12.100 /  9. 12.100&#xA;  libswscale      7.  5.100 /  7.  5.100&#xA;  libswresample   4. 12.100 /  4. 12.100&#xA;  libpostproc    57.  3.100 / 57.  3.100&#xA;

    &#xA;

    It will detect the audio as aac properly, but with different parameters, for example, bit_rate is 111733(developer) but 110399(ubuntu). But this parameter comes from the same file so should be the same.

    &#xA;

    [streams.stream.1]&#xA;index=1&#xA;codec_name=aac&#xA;codec_long_name=AAC (Advanced Audio Coding)&#xA;profile=LC&#xA;codec_type=audio&#xA;codec_tag_string=mp4a&#xA;codec_tag=0x6134706d&#xA;sample_fmt=fltp&#xA;sample_rate=44100&#xA;channels=2&#xA;channel_layout=stereo&#xA;bits_per_sample=0&#xA;initial_padding=0&#xA;id=0x2&#xA;r_frame_rate=0/0&#xA;avg_frame_rate=0/0&#xA;time_base=1/44100&#xA;start_pts=0&#xA;start_time=0.000000&#xA;duration_ts=441353&#xA;duration=10.008005&#xA;bit_rate=110399&#xA;max_bit_rate=N/A&#xA;bits_per_raw_sample=N/A&#xA;nb_frames=432&#xA;nb_read_frames=N/A&#xA;nb_read_packets=432&#xA;extradata_size=5&#xA;&#xA;

    &#xA;

  • Thumbnail generation using golang+ffmpeg

    23 avril 2024, par godvlpr

    I try to generate thumbnail from video mp4 using Golang+ffmpeg.

    &#xA;

    Let me provide some steps :

    &#xA;

      &#xA;
    1. Tried to generate using terminal ffmpeg -i test.mp4 -ss 00:00:00 -vframes 1 thumbnail.jpg - all works successfully
    2. &#xA;

    3. Tried to generate from golang and put result into stdout   cmd := exec.Command("ffmpeg", "-i", "test.mp4", "-ss", "00:00:00", "-vframes", "1", "-f", "image2pipe", "-") - all works successfully
    4. &#xA;

    5. Trying to open video using os.ReadFile and bytes.NewReader and after that -   cmd := exec.Command("ffmpeg", "-i", "pipe:", "-ss", "00:00:00", "-vframes", "1", "-f", "image2pipe", "-") And in this step I have an error.&#xA;Below provided all code and na error
    6. &#xA;

    &#xA;

        r, err := os.ReadFile("test.mp4")&#xA;    if err != nil {&#xA;        log.Fatalf("Failed to read video file: %v", err)&#xA;    }&#xA;    &#xA;    videoBuffer := bytes.NewReader(r)&#xA;&#xA;    cmd := exec.Command("ffmpeg", "-i", "pipe:", "-ss", "00:00:00", "-vframes", "1", "-f", "image2pipe", "-")&#xA;&#xA;    cmd.Stdin = videoBuffer&#xA;&#xA;    // Capture output as bytes&#xA;    var out bytes.Buffer&#xA;    cmd.Stdout = &amp;out&#xA;&#xA;    var stderr bytes.Buffer&#xA;    cmd.Stderr = &amp;stderr&#xA;&#xA;    // Run the command&#xA;    err = cmd.Run()&#xA;    if err != nil {&#xA;        log.Fatalf("ffmpeg command failed: %v, stderr: %s", err, stderr.String())&#xA;    }&#xA;&#xA;    // Convert bytes to image.Image&#xA;    img, _, err := image.Decode(&amp;out)&#xA;    if err != nil {&#xA;        log.Fatalf("Failed to decode thumbnail: %v", err)&#xA;    }&#xA;

    &#xA;

    Error

    &#xA;

    2024/04/23 13:25:51 ffmpeg command failed: exit status 183, stderr: ffmpeg version 7.0 Copyright (c) 2000-2024 the FFmpeg developers&#xA;  built with Apple clang version 15.0.0 (clang-1500.3.9.4)&#xA;  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/7.0 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags=&#x27;-Wl,-ld_classic&#x27; --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopenvino --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon&#xA;  libavutil      59.  8.100 / 59.  8.100&#xA;  libavcodec     61.  3.100 / 61.  3.100&#xA;  libavformat    61.  1.100 / 61.  1.100&#xA;  libavdevice    61.  1.100 / 61.  1.100&#xA;  libavfilter    10.  1.100 / 10.  1.100&#xA;  libswscale      8.  1.100 /  8.  1.100&#xA;  libswresample   5.  1.100 /  5.  1.100&#xA;  libpostproc    58.  1.100 / 58.  1.100&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x136504080] stream 0, offset 0x30: partial file&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x136504080] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 1920x1080, 3496 kb/s): unspecified pixel format&#xA;Consider increasing the value for the &#x27;analyzeduration&#x27; (0) and &#x27;probesize&#x27; (5000000) options&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;pipe:&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.26.100&#xA;  Duration: 00:00:02.01, start: 0.000000, bitrate: N/A&#xA;  Stream #0:0[0x1](und): Video: h264 (avc1 / 0x31637661), none, 1920x1080, 3496 kb/s, 25 fps, 25 tbr, 12800 tbn (default)&#xA;      Metadata:&#xA;        handler_name    : VideoHandler&#xA;        vendor_id       : [0][0][0][0]&#xA;  Stream #0:1[0x2](und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 96 kb/s (default)&#xA;      Metadata:&#xA;        handler_name    : SoundHandler&#xA;        vendor_id       : [0][0][0][0]&#xA;Stream mapping:&#xA;  Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x136504080] stream 0, offset 0x30: partial file&#xA;[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x600001134000] Error during demuxing: Invalid data found when processing input&#xA;Cannot determine format of input 0:0 after EOF&#xA;[vf#0:0 @ 0x600001f2c000] Task finished with error code: -1094995529 (Invalid data found when processing input)&#xA;[vf#0:0 @ 0x600001f2c000] Terminating thread with return code -1094995529 (Invalid data found when processing input)&#xA;[vost#0:0/mjpeg @ 0x104a04650] Could not open encoder before EOF&#xA;[vost#0:0/mjpeg @ 0x104a04650] Task finished with error code: -22 (Invalid argument)&#xA;[vost#0:0/mjpeg @ 0x104a04650] Terminating thread with return code -22 (Invalid argument)&#xA;[out#0/image2pipe @ 0x60000182c000] Nothing was written into output file, because at least one of its streams received no packets.&#xA;frame=    0 fps=0.0 q=0.0 Lsize=       0KiB time=N/A bitrate=N/A speed=N/A    &#xA;Conversion failed!&#xA;

    &#xA;

    Also tried to do something like this cmd := exec.Command("ffmpeg", "-analyzeduration", "10000M", "-probesize", "10000M", "-i", "pipe:", "-ss", "00:00:00", "-vframes", "1", "-f", "image2pipe", "-") - and had the same error (almost the same).

    &#xA;

    How to fix code or ffmpeg command - to bring this code workable ?

    &#xA;