Recherche avancée

Médias (1)

Mot : - Tags -/illustrator

Autres articles (45)

  • Emballe Médias : Mettre en ligne simplement des documents

    29 octobre 2010, par

    Le plugin emballe médias a été développé principalement pour la distribution mediaSPIP mais est également utilisé dans d’autres projets proches comme géodiversité par exemple. Plugins nécessaires et compatibles
    Pour fonctionner ce plugin nécessite que d’autres plugins soient installés : CFG Saisies SPIP Bonux Diogène swfupload jqueryui
    D’autres plugins peuvent être utilisés en complément afin d’améliorer ses capacités : Ancres douces Légendes photo_infos spipmotion (...)

  • Librairies et logiciels spécifiques aux médias

    10 décembre 2010, par

    Pour un fonctionnement correct et optimal, plusieurs choses sont à prendre en considération.
    Il est important, après avoir installé apache2, mysql et php5, d’installer d’autres logiciels nécessaires dont les installations sont décrites dans les liens afférants. Un ensemble de librairies multimedias (x264, libtheora, libvpx) utilisées pour l’encodage et le décodage des vidéos et sons afin de supporter le plus grand nombre de fichiers possibles. Cf. : ce tutoriel ; FFMpeg avec le maximum de décodeurs et (...)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

Sur d’autres sites (4907)

  • 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();
                }
            }
        }
    }


    


  • OpenCV on MacOS : Match Camera Index and Name

    15 janvier, par rpi_guru

    I have a builtin camera and a USB webcam connected to my MacOS.

    


    Here is a result of system_profiler SPCameraDataType -xml command :

    


    &lt;?xml version="1.0" encoding="UTF-8"?>&#xA;&#xA;<plist version="1.0">&#xA;<array>&#xA;    <dict>&#xA;        <key>_SPCommandLineArguments</key>&#xA;        <array>&#xA;            <string>/usr/sbin/system_profiler</string>&#xA;            <string>-nospawn</string>&#xA;            <string>-xml</string>&#xA;            <string>SPCameraDataType</string>&#xA;            <string>-detailLevel</string>&#xA;            <string>full</string>&#xA;        </array>&#xA;        <key>_SPCompletionInterval</key>&#xA;        <real>1.1997909545898438</real>&#xA;        <key>_SPResponseTime</key>&#xA;        <real>1.2810090780258179</real>&#xA;        <key>_dataType</key>&#xA;        <string>SPCameraDataType</string>&#xA;        <key>_detailLevel</key>&#xA;        <integer>-1</integer>&#xA;        <key>_items</key>&#xA;        <array>&#xA;            <dict>&#xA;                <key>_name</key>&#xA;                <string>USB Camera</string>&#xA;                <key>spcamera_model-id</key>&#xA;                <string>UVC Camera VendorID_3141 ProductID_25453</string>&#xA;                <key>spcamera_unique-id</key>&#xA;                <string>0x11000000c45636d</string>&#xA;            </dict>&#xA;            <dict>&#xA;                <key>_name</key>&#xA;                <string>FaceTime HD Camera</string>&#xA;                <key>spcamera_model-id</key>&#xA;                <string>FaceTime HD Camera</string>&#xA;                <key>spcamera_unique-id</key>&#xA;                <string>EAB7A68F-EC2B-4487-AADF-D8A91C1CB782</string>&#xA;            </dict>&#xA;        </array>&#xA;        <key>_parentDataType</key>&#xA;        <string>SPHardwareDataType</string>&#xA;        <key>_properties</key>&#xA;        <dict>&#xA;            <key>_name</key>&#xA;            <dict>&#xA;                <key>_isColumn</key>&#xA;                <string>NO</string>&#xA;                <key>_isOutlineColumn</key>&#xA;                <string>NO</string>&#xA;                <key>_order</key>&#xA;                <string>0</string>&#xA;            </dict>&#xA;            <key>spcamera</key>&#xA;            <dict>&#xA;                <key>_order</key>&#xA;                <string>10</string>&#xA;            </dict>&#xA;            <key>spcamera_model-id</key>&#xA;            <dict>&#xA;                <key>_order</key>&#xA;                <string>30</string>&#xA;            </dict>&#xA;            <key>spcamera_unique-id</key>&#xA;            <dict>&#xA;                <key>_order</key>&#xA;                <string>40</string>&#xA;            </dict>&#xA;            <key>volumes</key>&#xA;            <dict>&#xA;                <key>_detailLevel</key>&#xA;                <string>0</string>&#xA;            </dict>&#xA;        </dict>&#xA;        <key>_timeStamp</key>&#xA;        <date>2024-11-29T21:57:28Z</date>&#xA;        <key>_versionInfo</key>&#xA;        <dict>&#xA;            <key>com.apple.SystemProfiler.SPCameraReporter</key>&#xA;            <string>1.2.0</string>&#xA;        </dict>&#xA;    </dict>&#xA;</array>&#xA;</plist>&#xA;

    &#xA;

    As you can see, I have a couple of video input devices : USB Camera & FaceTime HD Camera

    &#xA;

    The problem is that when I use cap = cv2.VideoCapture(0), it uses the FaceTime HD Camera.

    &#xA;

    Can we match the camera index in OpenCV with the camera names ?

    &#xA;

    P.S. I tried ffmpeg, but it returned similar result :

    &#xA;

    enter image description here

    &#xA;

    ioreg | grep -i cam result :

    &#xA;

    enter image description here

    &#xA;

  • How can I remove every nth frame from raw video using ffmpeg ?

    15 juin 2024, par DaveB44

    Question moved to SuperUser, please reply there

    &#xA;

    I have many cine films that have been digitally converted. They have been converted as a 25 fps with 2 frames in every 23 duplicated. I need to remove the duplicated frames using a bitstream filter so there is no decoding/encoding.

    &#xA;

    After removing the frames I will change to the original cine frame rate of 18 fps. I will then change the frame rate to 25 fps using duplicated frames. I don't want to interpolate as I want to preserve the jerky format of the cine. Finally I will video editing software that will do the final encoding.

    &#xA;

    All the additional steps will cause several stages of decoding/encoding, that I need to avoid.

    &#xA;

    First I used a combination of the answers to FFmpeg remove video frames at specific intervals and FFmpeg remove every 6th frame starting from the 3rd frame, on an mp4 file to check it works. I modified it to remove every 4th and 17th frame in 25.

    &#xA;

    ffmpeg -loglevel warning -i cine.mp4 -an -vf "select=&#x27;if((mod(n-4,25)),(mod(n-17,25)))&#x27;,setpts=&#x27;N/FRAME_RATE/TB&#x27;" cine-23.mp4&#xA;

    &#xA;

    This works fine, but I end up with a file a quarter the size.

    &#xA;

    I now used Gyan's answer in Using ffmpeg to change framerate to extract the raw bitstream.

    &#xA;

    ffmpeg -loglevel warning -i cine.mp4 -c copy -f h264 cine.h264&#xA;

    &#xA;

    This created the h264 file as expected, surprisingly it was 16 kB smaller than the original (67 GB file size).

    &#xA;

    I then modified the code to use the .h264 file.

    &#xA;

    ffmpeg -loglevel warning -i cine.h264 -vf "select=&#x27;if((mod(n-4,25)),(mod(n-17,25)))&#x27;,setpts=&#x27;N/FRAME_RATE/TB&#x27;" cine-23.h264&#xA;

    &#xA;

    This gave the following error, but created the cine-23.h264 file although it was the same size as cine-23.mp4 in the test above

    &#xA;

    [h264 @ 00000245ec0bfb80] non-existing SPS 0 referenced in buffering period&#xA;    Last message repeated 1 times&#xA;

    &#xA;

    I then checked the ffmpeg bitstream filter documentation and found the bitstream filter setts. I changed my code to the following.

    &#xA;

    ffmpeg -loglevel warning -i cine.h264 -bsf:v "select=&#x27;if((mod(n-4,25)),(mod(n-17,25)))&#x27;,setts=pts=&#x27;N/FRAME_RATE/TB&#x27;" cine-23.h264&#xA;

    &#xA;

    Which resulted in the following error.

    &#xA;

    [vost#0:0/libx264 @ 000002916cf173c0] Error parsing bitstream filter sequence &#x27;select=&#x27;if((mod(n-4,25)),(mod(n-17,25)))&#x27;,setts=pts=&#x27;N/FRAME_RATE/TB&#x27;&#x27;: Bitstream filter not found&#xA;Error opening output file cine-23.h264.&#xA;Error opening output files: Bitstream filter not found&#xA;

    &#xA;

    I'm assuming the error is because setts does not support select. Is there another way to achieve what I am looking for ?

    &#xA;

    I could use mpdecimate but as that has to compare each frame it is much slower than defining it only needs to delete frames 4 and 17 in every second.

    &#xA;

    This is the output of ffprobe on my original file.

    &#xA;

    ffprobe version 2023-11-28-git-47e214245b-full_build-www.gyan.dev Copyright (c) 2007-2023 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-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --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-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint&#xA;  libavutil      58. 32.100 / 58. 32.100&#xA;  libavcodec     60. 35.100 / 60. 35.100&#xA;  libavformat    60. 18.100 / 60. 18.100&#xA;  libavdevice    60.  4.100 / 60.  4.100&#xA;  libavfilter     9. 14.100 /  9. 14.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 &#x27;cine.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : mp42&#xA;    minor_version   : 19529864&#xA;    compatible_brands: mp42isom&#xA;    creation_time   : 2024-02-19T21:01:10.000000Z&#xA;  Duration: 00:01:00.00, start: 0.000000, bitrate: 9245 kb/s&#xA;  Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 720x576 [SAR 35:32 DAR 175:128], 9243 kb/s, 25 fps, 25 tbr, 25 tbn (default)&#xA;    Metadata:&#xA;      creation_time   : 2024-02-19T21:01:10.000000Z&#xA;      handler_name    : Video Media Handler&#xA;      vendor_id       : [0][0][0][0]&#xA;      encoder         : AVC Coding&#xA;

    &#xA;