Recherche avancée

Médias (3)

Mot : - Tags -/plugin

Autres articles (41)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

  • Les statuts des instances de mutualisation

    13 mars 2010, par

    Pour des raisons de compatibilité générale du plugin de gestion de mutualisations avec les fonctions originales de SPIP, les statuts des instances sont les mêmes que pour tout autre objets (articles...), seuls leurs noms dans l’interface change quelque peu.
    Les différents statuts possibles sont : prepa (demandé) qui correspond à une instance demandée par un utilisateur. Si le site a déjà été créé par le passé, il est passé en mode désactivé. publie (validé) qui correspond à une instance validée par un (...)

  • 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

Sur d’autres sites (6344)

  • How to stream video form device to ingestion server using nodejs

    28 juillet 2021, par rocky

    I'm building a live streaming app (one-to-many) and am using AWS IVS as my ingestion server.

    


    Now, I get the video feed from mediaRecorder api transmits the video using socket.io as a buffer. Now the challenge is to parse the real-time buffers to AWS IVS or any other ingestion server.

    


    I figured that the only way to stream the video is by using ffmpeg and that's where am completely stuck.

    


    Here is my code

    


    // ffmpeg config
const { spawn, exec } = require("child_process");

let ffstr = `-re -stream_loop -1 -i ${input} -r 30 -c:v libx264 -pix_fmt yuv420p -profile:v main -preset veryfast -x264opts "nal-hrd=cbr:no-scenecut" -minrate 3000 -maxrate 3000 -g 60 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmps://${INGEST_ENDPOINT}:443/app/${STREAM_KEY}`;

let ffmpeg = spawn("ffmpeg", ffstr.split(" "));

// Socket.io
socket.on("binarystream", async (mBuffer) => {
      // TODO: Get the buffer
      // TODO: Ingest/convert to mp4
      // TODO: Stream to IVS

      // TODO: FFMpeg is your best bet
      // console.log(mBuffer);

      ffmpeg.stdin.write(mBuffer);
      
  });


    


    PS : Even if you don't have the direct answers I'm available for discussion

    


  • Trying to identify global metadata

    29 mai 2021, par the_steve_randolph

    I am pretty new to ffmpeg and using it to convert/change a large number of video files. I typically use VLC to find out some (all ?) of the information that I am interested in changing. But, one piece of information I can't seem to identify.

    


    I know that within a video file, each audio and video track have titles that I can change with ffmpeg. Also, I know that I can change the metadata tag "title" that would seem to encompass the entire file. This "title" value is displayed on the top line in VLC and displays in Windows Explorer in the "Title" column. This seems to be the same tag when you right-click on the file, click the "Details" tab, and, look at the "Title" tag under "Description".

    


    But, in some video files, in VLC I click on "Playback" and then "Title", there is different "title" information. Most of the time it is blank, but, other times there is one or two names that indicates it came from the "title" information of a DVD. That is, a DVD that has multiple titles (different/separate movies on the same disc). Well, I want to erase or change that "title" information, but, I cannot seem to determine where/how in ffmpeg to access it. This information is not shown with the "ffmpeg -i file.mp4" or "ffprobe -1 file.mp4".

    


    Since this "title" information is not directly related to a specific video track, I am assuming that it fits under the category of "global" metadata. Googling "ffmpeg global metadata tags", I can find some of the tags I typically change (i.e "frame height" and "frame width"), as well as the "title" that is the Windows Explorer "title" column. But, none of those search results mention this other "title" information/tag, or, that a DVD can have multiple titles that show up when converted to a MP4/MKV and viewed it in VLC.

    


    So, WTH is that tag name and is it something that ffmpeg can see and/or change ?

    


  • Conditional formats in Laravel FFMPEG

    29 décembre 2020, par JJ The Second

    I'm currently using Laravel FFMPEG in a Laravel project and running followings which works well https://github.com/protonemedia/laravel-ffmpeg

    


    Here is an example of code that is working :

    


     $lowBitrate = (new X264)->setKiloBitrate(250);
            $midBitrate = (new X264)->setKiloBitrate(500);
            $highBitrate = (new X264)->setKiloBitrate(1000);
            $superBitrate = (new X264)->setKiloBitrate(1500);

            FFMpeg::open('steve_howe.mp4')
                ->exportForHLS()
                ->addFormat($lowBitrate, function($media) {
                    $media->addFilter('scale=640:480');
                })

                 ->addFormat($midBitrate, function($media) {
                    $media->scale(960, 720);
                })
                ->addFormat($highBitrate, function ($media) {
                    $media->addFilter(function ($filters, $in, $out) {
                        $filters->custom($in, 'scale=1920:1200', $out); // $in, $parameters, $out
                    });
                })
                ->addFormat($superBitrate, function($media) {
                    $media->addLegacyFilter(function ($filters) {
                        $filters->resize(new \FFMpeg\Coordinate\Dimension(2560, 1920));
                    });
                })
                ->save('adaptive_steve.m3u8');


    


    Now, my challenge is that on client side, my users need to select what formats they'd like to include in transcoding job and one job may contain 2 bitrate variation or more so there is a need to have a conditional statement before calling ->addFromat()

    


    Ideally I'd need to approach this :

    


     $lowBitrate = (new X264)->setKiloBitrate(250);
        $midBitrate = (new X264)->setKiloBitrate(500);
        $highBitrate = (new X264)->setKiloBitrate(1000);
        $superBitrate = (new X264)->setKiloBitrate(1500);

        FFMpeg::open('steve_howe.mp4')
            ->exportForHLS()
            ->addFormat($lowBitrate, function($media) {
                $media->addFilter('scale=640:480');
            })
             /// adding if statement here
             ->addFormat($midBitrate, function($media) {
                $media->scale(960, 720);
            })
            ->addFormat($highBitrate, function ($media) {
                $media->addFilter(function ($filters, $in, $out) {
                    $filters->custom($in, 'scale=1920:1200', $out); // $in, $parameters, $out
                });
            })
            ->addFormat($superBitrate, function($media) {
                $media->addLegacyFilter(function ($filters) {
                    $filters->resize(new \FFMpeg\Coordinate\Dimension(2560, 1920));
                });
            })
            ->save('adaptive_steve.m3u8');


    


    No idea how to add a if/else statement here. How do you think I should approach this ?

    


    Thanks