Recherche avancée

Médias (3)

Mot : - Tags -/spip

Autres articles (49)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Mise à disposition des fichiers

    14 avril 2011, par

    Par défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
    Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
    Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

Sur d’autres sites (6566)

  • Texture bound to texture unit 0 is not renderable

    2 décembre 2018, par Trying_To_Understand

    I followed this tutorial https://github.com/phoboslab/jsmpeg. I have an open wesocket that gets the data. Sometimes, it’s take a long time to the ffmpeg (on a remote computer) to get the data from my ip camera, so I wrote a setTimeout function that waites for 10 sec to be "sure" that the ffmpeg getting the data from the ip camera. If I remove this setTimeout function this error will show up :

    [.WebGL-0000020CFA5C04D0]RENDER WARNING : texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.

    This is my code for showing the stream to the client :

    this.dataService.getDataByParam(camera.CameraId.toString())
     .subscribe(
     (result: any) => {

       setTimeout(() => {
         this.ws = new WebSocket('ws://' + result);
         $(document).ready(() => {

           this.player = new jsmpeg(this.ws, {
             canvas: document.getElementById("canvas"),
             autoplay: true,
             audio: true,
             pauseWhenHidden: false,
           });

         })
       }, 10000);
     },
     (error: Error) => {
       this.streamErrorMsg = "Problem with the server, please try again after some time."
     });
    }

    How can i know for sure that the ffmpeg has connected successfully to the camera and started to convert the data on the client ? i want to avoid writting the setTimeout function.

  • ffmpeg quality conversion options (video compression)

    25 septembre 2020, par Jason Hunter

    Can you provide a link, or an explanation, to the -q:v 1 argument that deals with video/image quality, and compression, in ffmpeg.

    


    Let me explain...

    


    for f in *
   do 
     extension="${f##*.}"
     filename="${f%.*}"
     ffmpeg -i "$f" -q:v 1 "$filename"_lq."$extension"
     rm -f "$f"
   done


    


    The ffmpeg for loop above compresses all images and videos in your working directory, it basically lowers the quality which results in smaller file sizes (the desired outcome).

    


    I'm most interested in the -q:v 1 argument of this for loop. The 1 in the -q:v 1 argument is what controls the amount of compression. But I can't find any documentation describing how to change this value of 1, and describing what it does. Is it a percentage ? Multiplier ? How do I adjust this knob ? Can/should I use negative values ? Integers only ? Min/max values ? etc.

    


    I started with the official documentation but the best I could find was a section on video quality, and the -q flag description is sparse.

    


    


    -frames[:stream_specifier] framecount (output,per-stream)
    
Stop writing to the stream after framecount frames.
    
.
    
-q[:stream_specifier] q (output,per-stream)
    

    
-qscale[:stream_specifier] q (output,per-stream)
    
Use fixed quality scale (VBR). The meaning of q/qscale is codec-dependent. If qscale is used without a stream_specifier then it applies only to the video stream, this is to maintain compatibility with previous behavior and as specifying the same codec specific value to 2 different codecs that is audio and video generally is not what is intended when no stream_specifier is used.

    


    


  • FFmpeg C Api - Reduce fps but maintain video duration

    25 mars 2015, par Justin Bradley

    Using the FFmpeg C API I’m trying to convert an input video into a video that looks like an animated gif - meaning no audio stream and a video stream of 4/fps.

    I have the decode/encode part working. I can drop the audio stream from the output file, but I’m having trouble reducing the fps. I can change the output video stream’s time_base to 4/fps, but it increases the video’s duration - basically playing it in slow mo.

    I think I need to drop the extra frames before I write them to the output container.

    Below is the loop where I read the input frames, and then write them to output container.

    Is this where I’d drop the extra frames ? How do I determine which frames to drop (I,P,B frames) ?

    while(av_read_frame(input_container, &decoded_packet)>=0) {

       if (decoded_packet.stream_index == video_stream_index) {
           len = avcodec_decode_video2(input_stream->codec, decoded_frame, &got_frame, &decoded_packet);
           if(len < 0) {
               exit(1);
           }

           if(got_frame) {
               av_init_packet(&encoded_packet);
               encoded_packet.data =  NULL;
               encoded_packet.size =  0;

               if(avcodec_encode_video2(output_stream->codec, &encoded_packet, decoded_frame, &got_frame) < 0) {
                   exit(1);
               }
               if(got_frame) {
                   if (output_stream->codec->coded_frame->key_frame) {
                       encoded_packet.flags |= AV_PKT_FLAG_KEY;
                   }

                   encoded_packet.stream_index = output_stream->index;
                   encoded_packet.pts = av_rescale_q(current_frame_num, output_stream->codec->time_base, output_stream->time_base);
                   encoded_packet.dts = av_rescale_q(current_frame_num, output_stream->codec->time_base, output_stream->time_base);

                   if(av_interleaved_write_frame(output_container, &encoded_packet) < 0) {
                       exit(1);
                   }
                   else {
                       current_frame_num +=1;
                   }
               }
               frame_count+=1;
               av_free_packet(&encoded_packet);
           }
       }
    }