Recherche avancée

Médias (1)

Mot : - Tags -/graphisme

Autres articles (34)

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

Sur d’autres sites (7741)

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

    19 mars 2024, par MattHodson

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

    


    But I'm getting the following error :

    


    


    ffmpeg version 2024-02-04-git-7375a6ca7b-essentials_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
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
libavutil 58. 36.101 / 58. 36.101
libavcodec 60. 38.100 / 60. 38.100
libavformat 60. 20.100 / 60. 20.100
libavdevice 60. 4.100 / 60. 4.100
libavfilter 9. 17.100 / 9. 17.100
libswscale 7. 6.100 / 7. 6.100
libswresample 4. 13.100 / 4. 13.100
libpostproc 57. 4.100 / 57. 4.100
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' :
Metadata :
major_brand : isom
minor_version : 512
compatible_brands : isomiso2avc1mp41
encoder : Lavf60.20.100
Duration : 00:03:18.84, start : 0.000000, bitrate : 101 kb/s
Stream #0:00x1 : Video : h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1024x1792, 26 kb/s, 1 fps, 1 tbr, 16384 tbn (default)
Metadata :
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : Lavc60.38.100 libx264
Stream #0:10x2 : Audio : aac (LC) (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 74 kb/s (default)
Metadata :
handler_name : SoundHandler
vendor_id : [0][0][0][0]
[Parsed_subtitles_0 @ 000001a87404e3c0] Unable to parse option value "UsersGamersourcereposXXXXbinDebugnet8.0ce31c8ab-4b53-44e8-9e25-d02ba5466144output.srt" as image size
Error applying option 'original_size' to filter 'subtitles' : Invalid argument
[vost#0:0/libx264 @ 000001a874064a40] Error initializing a simple filtergraph
Error opening output file C :\Users\Gamer\source\repos\XXXX\bin\Debug\net8.0\ce31c8ab-4b53-44e8-9e25-d02ba5466144\videoWithSubtitles.mp4.
Error opening output files : Invalid argument

    


    


    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 !

    


    My code :

    


       public static async Task AddSubtitlesToVideoAsync(string videoPath, string subtitlesPath, string outputPath)
    {
        if (File.Exists(videoPath) && File.Exists(subtitlesPath))
        {
            //string subtitlesPathForwardSlashes = subtitlesPath.Replace("\\", "/");
            //string ffmpegCommand = $"-i \"{videoPath}\" -filter_complex \"subtitles='{subtitlesPathForwardSlashes}'\" \"{outputPath}\"";
            //string ffmpegCommand = $"-i \"{videoPath}\" -vf subtitles={subtitlesPathForwardSlashes} \"{outputPath}\"";
            //string ffmpegCommand = $"-i \"{videoPath}\" -vf subtitles=\"{subtitlesPath}\" \"{outputPath}\"";
            string subtitlesPathEscaped = subtitlesPath.Replace("\\", "\\\\");
            string ffmpegCommand = $"-i \"{videoPath}\" -vf subtitles=\"{subtitlesPathEscaped}\" \"{outputPath}\"";


            //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
            await ExecuteSubtitleCommandAsync(ffmpegCommand);
        }
        else
        {
            Console.WriteLine("Files can't be found.");
        }
    }

    public static async Task ExecuteSubtitleCommandAsync(string arguments)
    {
        string ffmpegExecutablePath = ffmpegRoot;
        var startInfo = new ProcessStartInfo(ffmpegExecutablePath, arguments)
        {
            CreateNoWindow = true,
            UseShellExecute = false,
            RedirectStandardOutput = true,
            RedirectStandardError = true
        };

        using (var process = new Process { StartInfo = startInfo })
        {
            process.EnableRaisingEvents = true; // Enable the Exited event.
            process.Exited += (sender, e) =>
            {
                Console.WriteLine($"FFmpeg process exited with code {process.ExitCode}.");
            };

            try
            {
                process.Start();
                // Asynchronously read the standard output and standard error of the process
                var outputTask = process.StandardOutput.ReadToEndAsync();
                var errorTask = process.StandardError.ReadToEndAsync();
                // Wait for both asynchronous tasks to complete
                await Task.WhenAll(outputTask, errorTask);

                var output = await outputTask;
                var error = await errorTask;

                if (!string.IsNullOrEmpty(error))
                {
                    Console.WriteLine("FFmpeg error: " + error);
                }
                else
                {
                    Console.WriteLine("FFmpeg process completed successfully.");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
            finally
            {
                // Wait for the process to exit if it hasn't already.
                if (!process.HasExited)
                {
                    process.WaitForExit();
                }
            }
        }
    }


    


  • ffmpeg : getting larger gif file after optimization [closed]

    28 août 2024, par xaxa

    I'm trying to use ffmpeg to reduce the size of GIF images by lowering fps and color palette size. This is the command I use :

    


    ffmpeg -i initial.gif -filter_complex "[0]fps=${fps},split[m][t];[t]palettegen=max_colors=${max_colors}[p];[m][p]paletteuse" output.gif


    


    however, for some reason I'm getting larger files even if I do something as stupid as fps=1, max_colors=4.

    


    here's the initial file :
enter image description here

    


    here's what I've got after the transformation :
enter image description here

    


    the command was :

    


    ffmpeg -i eglite.gif -filter_complex "[0]fps=1,split[m][t];[t]palettegen=max_colors=4[p];[m][p]paletteuse" output.gif


    


    and the sizes I get are :

    


    -rw-r--r-- 1 work work    15860 Aug 26 11:30 eglite.gif
-rw-r--r-- 1 work work    21395 Aug 28 21:35 output.gif


    


    Here's my ffmpeg version :

    


    ffmpeg version n7.0.2 Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 14.2.1 (GCC) 20240805
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-frei0r --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libdvdnav --enable-libdvdread --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libharfbuzz --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse --enable-librav1e --enable-librsvg --enable-librubberband --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-vapoursynth --enable-version3 --enable-vulkan
libavutil      59.  8.100 / 59.  8.100
libavcodec     61.  3.100 / 61.  3.100
libavformat    61.  1.100 / 61.  1.100
libavdevice    61.  1.100 / 61.  1.100
libavfilter    10.  1.100 / 10.  1.100
libswscale      8.  1.100 /  8.  1.100
libswresample   5.  1.100 /  5.  1.100
libpostproc    58.  1.100 / 58.  1.100


    


  • How do I get drawtext filter in ffmpeg to work on ubuntu 22.04 ?

    3 décembre 2024, par chovy

    Here's my script, but no matter what I try the drawtext filter is not enabled :

    


    #!/bin/bash

set -e  # Exit on any error

# Define installation directories
INSTALL_DIR="$HOME/ffmpeg_build"
BIN_DIR="$HOME/bin"
SOURCE_DIR="$HOME/ffmpeg_sources"
NUM_CORES=$(nproc)

echo "Creating necessary directories..."
mkdir -p "$INSTALL_DIR" "$BIN_DIR" "$SOURCE_DIR"

# Install required tools and dependencies
echo "Installing build tools and essential libraries..."
sudo apt-get update
sudo apt-get install -y \
  autoconf automake build-essential cmake git-core libass-dev \
  libfreetype6-dev libsdl2-dev libtool libva-dev libvdpau-dev \
  libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev \
  meson ninja-build pkg-config texinfo wget yasm zlib1g-dev \
  nasm libnuma-dev libfdk-aac-dev libmp3lame-dev libopus-dev \
  libfreetype6 libdrm-dev mercurial

# Remove system-installed x264 and x265 to prevent conflicts
sudo apt-get remove -y libx264-dev libx265-dev x264 x265

# Build dependencies
cd "$SOURCE_DIR"

# Install libx264 (static)
if [ ! -d "$SOURCE_DIR/x264" ]; then
  echo "Building and installing libx264..."
  git clone --branch stable --depth 1 https://code.videolan.org/videolan/x264.git
  cd x264
  make distclean || true
  ./configure --prefix="$INSTALL_DIR" --enable-static --disable-opencl
  make -j$NUM_CORES
  make install
  cd "$SOURCE_DIR"
fi

# Install libx265 (static)
if [ ! -d "$SOURCE_DIR/x265" ]; then
  echo "Building and installing libx265..."
  git clone --depth 1 https://github.com/videolan/x265.git
  cd x265/build/linux
  cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" \
    -DENABLE_SHARED=OFF -DENABLE_PIC=ON -DENABLE_PKGCONFIG=ON ../../source
  make -j$NUM_CORES
  make install
  cd "$SOURCE_DIR"
fi

# Install libvpx (static)
if [ ! -d "$SOURCE_DIR/libvpx" ]; then
  echo "Building and installing libvpx..."
  git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
  cd libvpx
  ./configure --prefix="$INSTALL_DIR" --disable-examples --disable-unit-tests \
    --enable-vp9-highbitdepth --as=yasm --enable-static --enable-pic
  make -j$NUM_CORES
  make install
  cd "$SOURCE_DIR"
fi

# Install libopus (static)
if [ ! -d "$SOURCE_DIR/opus" ]; then
  echo "Building and installing libopus..."
  git clone --depth 1 https://github.com/xiph/opus.git
  cd opus
  ./autogen.sh
  ./configure --prefix="$INSTALL_DIR" --disable-shared
  make -j$NUM_CORES
  make install
  cd "$SOURCE_DIR"
fi

# Install libaom (static)
if [ ! -d "$SOURCE_DIR/aom" ]; then
  echo "Building and installing libaom..."
  git clone --depth 1 https://aomedia.googlesource.com/aom
  mkdir -p aom_build
  cd aom_build
  cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" \
    -DBUILD_SHARED_LIBS=0 -DENABLE_NASM=1 -DCMAKE_C_FLAGS="-fPIC" ../aom
  make -j$NUM_CORES
  make install
  cd "$SOURCE_DIR"
fi

# Build and install FFmpeg
echo "Building and installing FFmpeg..."
cd "$SOURCE_DIR"
if [ ! -d "$SOURCE_DIR/ffmpeg" ]; then
  git clone --depth 1 https://git.ffmpeg.org/ffmpeg.git ffmpeg
  cd ffmpeg
else
  cd ffmpeg
  git pull
fi

export PKG_CONFIG_PATH="$INSTALL_DIR/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:/usr/lib/$(uname -m)-linux-gnu/pkgconfig:$PKG_CONFIG_PATH"

make distclean

./configure \
  --prefix="$INSTALL_DIR" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$INSTALL_DIR/include" \
  --extra-ldflags="-L$INSTALL_DIR/lib" \
  --extra-libs="-lpthread -lm" \
  --bindir="$BIN_DIR" \
  --enable-gpl \
  --enable-nonfree \
  --enable-libfreetype \
  --enable-libx264 \
  --enable-libvpx \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libass \
  --enable-libvorbis \
  --enable-libaom \
  --enable-libdrm \
  --enable-version3 \
  --enable-static \
  --disable-shared \
  --enable-small
  
make -j$NUM_CORES
make install

# Add ffmpeg to PATH
echo "export PATH=\"$BIN_DIR:\$PATH\"" >> "$HOME/.bashrc"
source "$HOME/.bashrc"

# Final checks
echo "FFmpeg installation complete. Verifying installation..."
ffmpeg -version



    


    Here is my buildconf which appears correct :

    


    $ ffmpeg -buildconf  

ffmpeg version N-117989-gcb27e478f7 Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
  configuration: --prefix=/usr/local --extra-cflags=-I/home/ubuntu/src/ffmpeg_build/include --extra-ldflags=-L/home/ubuntu/src/ffmpeg_build/lib --bindir=/usr/local/bin --enable-gpl --enable-nonfree --enable-libfreetype --enable-libx264 --enable-libvpx --enable-libmp3lame --enable-libopus --enable-libass --enable-libvorbis --enable-libaom --enable-libdrm --enable-version3 --enable-shared --enable-filter=drawtext  libavutil      59. 47.101 / 59. 47.101  libavcodec     61. 26.100 / 61. 26.100  libavformat    61.  9.100 / 61.  9.100  libavdevice    61.  4.100 / 61.  4.100  libavfilter    10.  6.101 / 10.  6.101  libswscale      8. 12.100 /  8. 12.100  libswresample   5.  4.100 /  5.  4.100
  libpostproc    58.  4.100 / 58.  4.100

  configuration:    --prefix=/usr/local
    --extra-cflags=-I/home/ubuntu/src/ffmpeg_build/include
    --extra-ldflags=-L/home/ubuntu/src/ffmpeg_build/lib
    --bindir=/usr/local/bin
    --enable-gpl    --enable-nonfree    --enable-libfreetype    --enable-libx264    --enable-libvpx    --enable-libmp3lame    --enable-libopus    --enable-libass    --enable-libvorbis    --enable-libaom    --enable-libdrm    --enable-version3    --enable-shared    --enable-filter=drawtext


    


    However the filter drawtext is not enabled :

    


    $ ffmpeg -filters | grep drawtext
ffmpeg version N-117989-gcb27e478f7 Copyright (c) 2000-2024 the FFmpeg developers  built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)  configuration: --prefix=/usr/local --extra-cflags=-I/home/ubuntu/src/ffmpeg_build/include --extra-ldflags=-L/home/ubuntu/src/ffmpeg_build/lib --bindir=/usr/local/bin --enable-gpl --enable-nonfree --enable-libfreetype --enable-libx264 --enable-libvpx --enable-libmp3lame --enable-libopus --enable-libass --enable-libvorbis --enable-libaom --enable-libdrm --enable-version3 --enable-shared --enable-filter=drawtext  libavutil      59. 47.101 / 59. 47.101  libavcodec     61. 26.100 / 61. 26.100  libavformat    61.  9.100 / 61.  9.100  libavdevice    61.  4.100 / 61.  4.100  libavfilter    10.  6.101 / 10.  6.101  libswscale      8. 12.100 /  8. 12.100  libswresample   5.  4.100 /  5.  4.100  libpostproc    58.  4.100 / 58.  4.100