Recherche avancée

Médias (91)

Autres articles (53)

  • 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

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • D’autres logiciels intéressants

    12 avril 2011, par

    On ne revendique pas d’être les seuls à faire ce que l’on fait ... et on ne revendique surtout pas d’être les meilleurs non plus ... Ce que l’on fait, on essaie juste de le faire bien, et de mieux en mieux...
    La liste suivante correspond à des logiciels qui tendent peu ou prou à faire comme MediaSPIP ou que MediaSPIP tente peu ou prou à faire pareil, peu importe ...
    On ne les connais pas, on ne les a pas essayé, mais vous pouvez peut être y jeter un coup d’oeil.
    Videopress
    Site Internet : (...)

Sur d’autres sites (7567)

  • How to compress videos on AMD RX 7900 XTX with ffmpeg ? [closed]

    19 novembre 2024, par cprn

    On Nvidia's GTX 1070 I used to do the below command, and it'd produce a way smaller file (often less than half of the original) without any visible degradation (at least for my eyes) :

    


    ffmpeg -hwaccel cuda -i file.mp4 -c:v hevc_nvenc -crf 20 file.small.mp4


    


    Now I switched to AMD's RX 7900 XTX and this command obviously doesn't work.

    


    What's the "equivalent" of that command ? As in : getting way smaller file with seemingly no quality loss.

    


    What I tried :

    


      

    1. av1_nvenc ends up in errors :
    2. 


    


    ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i file.mp4 -c:v av1_nvenc file.small.mp4


    


    Impossible to convert between the formats supported by the filter 'Parsed_null_0' and the filter 'auto_scale_0'
[vf#0:0 @ 0x60f7c1aa7d80] Error reinitializing filters!
[vf#0:0 @ 0x60f7c1aa7d80] Task finished with error code: -38 (Function not implemented)
[vf#0:0 @ 0x60f7c1aa7d80] Terminating thread with return code -38 (Function not implemented)
[vost#0:0/av1_nvenc @ 0x60f7c1b10040] Could not open encoder before EOF
[vost#0:0/av1_nvenc @ 0x60f7c1b10040] Task finished with error code: -22 (Invalid argument)
[vost#0:0/av1_nvenc @ 0x60f7c1b10040] Terminating thread with return code -22 (Invalid argument)
[out#0/mp4 @ 0x60f7c1b0d680] Nothing was written into output file, because at least one of its streams received no packets.


    


      

    1. hevc_vaapi goes through the encoding, but produces 20% bigger files instead of smaller :
    2. 


    


    ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i file.mp4 -c:v hevc_vaapi file.small.mp4


    


    No idea what I'm doing. I know next to nothing about video encoding, just what I read in the documentation, and I'm stuck. Also, I'm on Linux, but this shouldn't matter, I think.

    


    FFmpeg info :

    


    ❯ ffmpeg -version
ffmpeg version n7.1 Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 14.2.1 (GCC) 20240910
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-libglslang --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-libzmq --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-vapoursynth --enable-version3 --enable-vulkan
libavutil      59. 39.100 / 59. 39.100
libavcodec     61. 19.100 / 61. 19.100
libavformat    61.  7.100 / 61.  7.100
libavdevice    61.  3.100 / 61.  3.100
libavfilter    10.  4.100 / 10.  4.100
libswscale      8.  3.100 /  8.  3.100
libswresample   5.  3.100 /  5.  3.100
libpostproc    58.  3.100 / 58.  3.100


    


  • How can use ffmpeg in AWS Lambda to clip hls trasnsimision to .mp4

    15 novembre 2024, par Bruno Munné

    The ffmpeg input is through the public url of the bucket, I want to save the output in a tmp.mp4 file and I want to upload this file to the bucket. Locally the ffmpeg command works perfectly, lasting no more than 3 seconds and the output file weighs less than 1MB

    


    export const handler = async (event) => {
    try {
        const { m3u8, offset, duration, signedURL } = event;

        const clipKey = `clip_output.mp4`;
        const clipFilePath = path.join('/tmp', clipKey);

        execSync(`/opt/ffmpeglib/ffmpeg -i ${process.env.URL_CLOUDFLARE}/${m3u8} -ss ${offset} -t ${duration} -c copy -f mp4 ${clipFilePath}`)

        const fileContent = fs.readFileSync(clipFilePath);
        const resSign = await fetch(signedURL, {
            method: "PUT",
            headers: {
                "Content-Type": "application/octet-stream",
            },
            body: fileContent,
        });

        if (!resSign.ok) throw new Error(`Failed to upload file to S3: ${resSign.statusText}`);

        fs.unlinkSync(clipFilePath);

        return {
            statusCode: 200,
            body: JSON.stringify({
                message: 'Clip procesado y subido correctamente',
                clipKey: path.basename(clipFilePath)
            }),
        };
    } catch (error) {
        console.error("Error al procesar el clip:", error);
        return {
            statusCode: 500,
            body: JSON.stringify({ error: error.message }),
        };
    }
};


    


    The error it shows me is the following

    


     at genericNodeError (node:internal/errors:984:15)&#xA;    at wrappedFn (node:internal/errors:538:14)&#xA;    at checkExecSyncError (node:child_process:891:11)&#xA;    at execSync (node:child_process:963:15)&#xA;    at Runtime.handler (file:///var/task/index.js:16:3)&#xA;    at Runtime.handleOnceNonStreaming (file:///var/runtime/index.mjs:1173:29) {&#xA;  status: null,&#xA;  signal: &#x27;SIGSEGV&#x27;,&#xA;  output: [&#xA;    null,&#xA;    <buffer>,&#xA;    <buffer 66="66" 6d="6d" 70="70" 65="65" 67="67" 20="20" 76="76" 72="72" 73="73" 69="69" 6f="6f" 6e="6e" 4e="4e" 2d="2d" 37="37" 31="31" 30="30" 36="36" 34="34" 64="64" 35="35" 33="33" 63="63" 74="74" 61="61" 68="68" 3a="3a" 2f="2f" 1194="1194" more="more" bytes="bytes">&#xA;  ],&#xA;  pid: 13,&#xA;  stdout: <buffer>,&#xA;  stderr: <buffer 66="66" 6d="6d" 70="70" 65="65" 67="67" 20="20" 76="76" 72="72" 73="73" 69="69" 6f="6f" 6e="6e" 4e="4e" 2d="2d" 37="37" 31="31" 30="30" 36="36" 34="34" 64="64" 35="35" 33="33" 63="63" 74="74" 61="61" 68="68" 3a="3a" 2f="2f" 1194="1194" more="more" bytes="bytes">&#xA;}&#xA;ffmpeg version N-71064-gd5e603ddc0-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2024 the FFmpeg developers&#xA;built with gcc 8 (Debian 8.3.0-6)&#xA;configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg&#xA;libavutil      59. 27.100 / 59. 27.100&#xA;libavcodec     61.  9.100 / 61.  9.100&#xA;libavformat    61.  4.100 / 61.  4.100&#xA;libavdevice    61.  2.100 / 61.  2.100&#xA;libavfilter    10.  2.102 / 10.  2.102&#xA;libswscale      8.  2.100 /  8.  2.100&#xA;libswresample   5.  2.100 /  5.  2.100&#xA;libpostproc    58.  2.100 / 58.  2.100&#xA;END RequestId: 2fc8c51e-66c6-4c74-aa9c-fa10c11207a0&#xA;REPORT RequestId: 2fc8c51e-66c6-4c74-aa9c-fa10c11207a0  Duration: 164.82 ms Billed Duration: 165 ms Memory Size: 2048 MB    Max Memory Used: 88 MB  Init Duration: 185.19 ms&#xA;</buffer></buffer></buffer></buffer>

    &#xA;

    Help to resolve it please

    &#xA;

  • ffmpeg use gpu to encode mpeg4 to ts/m3u8 [closed]

    14 novembre 2024, par danielRICADO

    using ffmpeg I want to trim and transcode a mpeg4 from ts / m3u8

    &#xA;

    std::string ffmpeg_command = "ffmpeg -hwaccel drm -i " &#x2B; output_dir &#x2B; input_file &#x2B;&#xA;                         " -ss 00:00:00.00 -t 31 -c:v " &#x2B; codec &#x2B; " -b:v " &#x2B; std::to_string(bitrate) &#x2B;&#xA;                         " -vf scale=" &#x2B; std::to_string(width) &#x2B; "x" &#x2B; std::to_string(height) &#x2B;&#xA;                         " -hls_time " &#x2B; std::to_string(30) &#x2B; " -hls_list_size 0 -hls_segment_filename " &#x2B;&#xA;                         ts_file_pattern &#x2B; " -f hls " &#x2B; m3u8_file;&#xA;

    &#xA;

    I wanted to choose between codecs based on the system, if gpu is avaiable I'd like to opt to use it, right now I just check if the codec is available

    &#xA;

    bool is_h264_v4l2m2m_available() {&#xA;    std::string result = exec_command("ffmpeg -encoders 2>&amp;1");&#xA;    return result.find("h264_v4l2m2m") != std::string::npos;&#xA;}&#xA;

    &#xA;

    if it is a I wanted to move that process over to the gpu, not just use libx264. Here is the error log. Studying hard on the solution but wold super apperciate any expert advice.

    &#xA;

    other considerations are - runs in a docker container on a pi5, pibian on the host apline on in the container, container runs in privledged mode

    &#xA;

    2024-11-14 15:18:41 [INFO]: assigned codec: h264_v4l2m2m&#xA;2024-11-14 15:18:41 ffmpeg version 6.1.1 Copyright (c) 2000-2023 the FFmpeg developers&#xA;2024-11-14 15:18:41   built with gcc 13.2.1 (Alpine 13.2.1_git20240309) 20240309&#xA;2024-11-14 15:18:41   configuration: --prefix=/usr --disable-librtmp --disable-lzma --disable-static --disable-stripping --enable-avfilter --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libmp3lame --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse --enable-librav1e --enable-librist --enable-libsoxr --enable-libsrt --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-lto=auto --enable-lv2 --enable-openssl --enable-pic --enable-postproc --enable-pthreads --enable-shared --enable-vaapi --enable-vdpau --enable-version3 --enable-vulkan --optflags=-O3 --enable-libjxl --enable-libsvtav1 --enable-libvpl&#xA;2024-11-14 15:18:41   libavutil      58. 29.100 / 58. 29.100&#xA;2024-11-14 15:18:41   libavcodec     60. 31.102 / 60. 31.102&#xA;2024-11-14 15:18:41   libavformat    60. 16.100 / 60. 16.100&#xA;2024-11-14 15:18:41   libavdevice    60.  3.100 / 60.  3.100&#xA;2024-11-14 15:18:41   libavfilter     9. 12.100 /  9. 12.100&#xA;2024-11-14 15:18:41   libswscale      7.  5.100 /  7.  5.100&#xA;2024-11-14 15:18:41   libswresample   4. 12.100 /  4. 12.100&#xA;2024-11-14 15:18:41   libpostproc    57.  3.100 / 57.  3.100&#xA;2024-11-14 15:18:42 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;/app/client-data/camera-output/7ea3cbef-4da0-11ed-bdcc-baf70a43c072/1731550687270.mp4&#x27;:&#xA;2024-11-14 15:18:42   Metadata:&#xA;2024-11-14 15:18:42     major_brand     : isom&#xA;2024-11-14 15:18:42     minor_version   : 512&#xA;2024-11-14 15:18:42     compatible_brands: isomiso2avc1mp41&#xA;2024-11-14 15:18:42     encoder         : Lavf60.16.100&#xA;2024-11-14 15:18:42   Duration: 00:00:31.33, start: 0.000000, bitrate: 678 kb/s&#xA;2024-11-14 15:18:42   Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1024x1024, 677 kb/s, 15 fps, 15 tbr, 15360 tbn (default)&#xA;2024-11-14 15:18:42     Metadata:&#xA;2024-11-14 15:18:42       handler_name    : VideoHandler&#xA;2024-11-14 15:18:42       vendor_id       : [0][0][0][0]&#xA;2024-11-14 15:18:42 [AVFormatContext @ 0x7f9254dcb4c0] Unable to choose an output format for &#x27;678000&#x27;; use a standard extension for the filename or specify the format manually.&#xA;2024-11-14 15:18:42 [out#0 @ 0x7f9254d70700] Error initializing the muxer for 678000: Invalid argument&#xA;2024-11-14 15:18:42 Error opening output file 678000.&#xA;2024-11-14 15:18:42 Error opening output files: Invalid argument&#xA;2024-11-14 15:18:42 [ERROR]: Failed to generate .ts file for: 1731550687270.mp4&#xA;

    &#xA;