Recherche avancée

Médias (91)

Autres articles (68)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

Sur d’autres sites (6648)

  • gstreamer : Internal data error, in appsink "pull-sample" mode

    9 mai 2018, par Amir Raza

    I am getting Internal data error, in appsink .
    My application is to read .yuv data , encode and write to a buffer.

    I have accomplished the writing it file but when i changed the code to write it buffer it giving error.
    Its only able to write only single packet (188bytes).

    Output of program :

    (ConsoleApplication6.exe:14432): GStreamer-WARNING **: Failed to load plugin 'C:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstopenh264.dll': 'C:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstopenh264.dll': The specified procedure could not be found.
       pipeline:  filesrc location=Transformers1080p.yuv blocksize=4147200 ! videoparse  width=1920 height=1080 framerate=60/1 ! videoconvert ! video/x-raw,format=I420,width=1920,height=1080,framerate=60/1 !  x264enc ! mpegtsmux ! queue !  appsink name = sink
       Now playing: Transformers1080p.yuv
       Running...

        on_new_sample_from_sink

        sample got of size = 188
       Error: Internal data stream error.
       Returned, stopping playback
       Deleting pipeline

    my code :

    #define _CRT_SECURE_NO_WARNINGS 1
    //#pragma warning(disable:4996)
    #include <gst></gst>gst.h>
    #include <gst></gst>audio/audio.h>
    #include <gst></gst>app/gstappsrc.h>
    #include <gst></gst>base/gstpushsrc.h>
    #include <gst></gst>app/gstappsink.h>
    #include <gst></gst>video/video.h>
    #include <gst></gst>video/gstvideometa.h>
    #include <gst></gst>video/video-overlay-composition.h>

    #include
    #include

    #include
    #include

    using namespace std;

    GstElement *SinkBuff;
    char *out_file_path;
    FILE *out_file;

    //gst-launch-1.0.exe -v filesrc location=Transformers1080p.yuv blocksize=4147200 !  
    //videoconvert ! video/x-raw,format=I420,width=1920,height=1080,framerate=60/1 !  
    //openh264enc ! mpegtsmux ! filesink location=final.ts


    static gboolean bus_call(GstBus     *bus, GstMessage *msg, gpointer    data)
    {
           GMainLoop *loop = (GMainLoop *)data;

           switch (GST_MESSAGE_TYPE(msg))
           {
           case GST_MESSAGE_EOS:
                   g_print("End of stream\n");
                   g_main_loop_quit(loop);
                   break;

           case GST_MESSAGE_ERROR:
             {
                   gchar  *debug;
                   GError *error;

                   gst_message_parse_error(msg, &amp;error, &amp;debug);
                   g_free(debug);

                   g_printerr("Error: %s\n", error->message);
                   g_error_free(error);

                   g_main_loop_quit(loop);
                   break;
             }
           default:
                   break;
       }
           return TRUE;
    }

    /* called when the appsink notifies us that there is a new buffer ready for
    * processing */
    static void  on_new_sample_from_sink(GstElement * elt, void *ptr)
    {
           guint size;
           GstBuffer *app_buffer, *buffer;
           GstElement *source;
           GstMapInfo map = { 0 };
           GstSample *sample;
           static GstClockTime timestamp = 0;
           printf("\n on_new_sample_from_sink \n ");
           /* get the buffer from appsink */
           g_signal_emit_by_name(SinkBuff, "pull-sample", &amp;sample, NULL);
           if (sample)
           {
                   buffer = gst_sample_get_buffer(sample);
                   gst_buffer_map(buffer, &amp;map, GST_MAP_READ);

                   printf("\n sample got of size = %d \n", map.size);
                   //Buffer
                   fwrite((char *)map.data, 1, sizeof(map.size), out_file);

                   gst_buffer_unmap(buffer, &amp;map);
                   gst_sample_unref(sample);
           }
    }


    int main(int   argc, char *argv[])
    {
           GMainLoop *loop;
           int width, height;

           GstElement *pipeline;
           GError *error = NULL;
           GstBus *bus;
           char pipeline_desc[1024];
           out_file = fopen("output.ts", "wb");


           /* Initialisation */
           gst_init(&amp;argc, &amp;argv);

           // Create gstreamer loop
           loop = g_main_loop_new(NULL, FALSE);

           sprintf(
                   pipeline_desc,
                   " filesrc location=Transformers1080p.yuv blocksize=4147200 !"
                   " videoparse  width=1920 height=1080 framerate=60/1 !"
                   " videoconvert ! video/x-raw,format=I420,width=1920,height=1080,framerate=60/1 ! "
                   //" x264enc ! mpegtsmux ! filesink location=final.ts");
                   " x264enc ! mpegtsmux ! queue !  appsink name = sink");


           printf("pipeline: %s\n", pipeline_desc);

           /* Create gstreamer elements */
           pipeline = gst_parse_launch(pipeline_desc, &amp;error);

           /* TODO: Handle recoverable errors. */

           if (!pipeline) {
                   g_printerr("Pipeline could not be created. Exiting.\n");
                   return -1;
           }

           /* get sink */
           SinkBuff = gst_bin_get_by_name(GST_BIN(pipeline), "sink");
           g_object_set(G_OBJECT(SinkBuff), "emit-signals", TRUE, "sync", FALSE, NULL);
           g_signal_connect(SinkBuff, "new-sample", G_CALLBACK(on_new_sample_from_sink), NULL);


           /* Set up the pipeline */
           /* we add a message handler */
           bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline));
           gst_bus_add_watch(bus, bus_call, loop);
           gst_object_unref(bus);

           /* Set the pipeline to "playing" state*/
           g_print("Now playing: Transformers1080p.yuv \n");
           gst_element_set_state(pipeline, GST_STATE_PLAYING);

           /* Iterate */
           g_print("Running...\n");
           g_main_loop_run(loop);

           /* Out of the main loop, clean up nicely */
           g_print("Returned, stopping playback\n");
           gst_element_set_state(pipeline, GST_STATE_NULL);

           g_print("Deleting pipeline\n");
           gst_object_unref(GST_OBJECT(pipeline));
           fclose(out_file);
           g_main_loop_unref(loop);


           return 0;
    }
  • youtube-dl - How do I ensure that the "original" video formats are downloaded ?

    25 juin 2018, par Schytheron

    I am building a C# GUI (Windows only) for youtube-dl where I allow the user to pick the desired video quality and framerate but I am having problems with format selection. youtube-dl sometimes downloads either the wrong video file or the wrong audio file (often it is audio) and after merging them I end up with a .mkv file because according to FFmpeg the files I am trying to merge are incompatible.

    These are the format selection queries I have tried to far :

    bestvideo[height&lt;=?%height%][fps&lt;=?%fps%]+bestaudio/best

    and

    public string[] qualities = { "4320", "2160", "1440", "1080", "720", "480", "360", "240", "144" };
    public string[] framerates = { "60", "50", "48", "30", "24" };
    private void buildFormat(int qualSkip,int fpsSkip)
           {
               string[] qualitiesMin = qualities.Skip(qualSkip).ToArray();
               string[] frameratesMin = framerates.Skip(fpsSkip).ToArray();
               format = "-f ";
               foreach (string quality in qualitiesMin)
               {
                   foreach (string framerate in frameratesMin)
                   {
                       format += "bestvideo[height=?" + quality + "][fps=?" + framerate + "]+bestaudio/";
                   }
               }
               format += "best";
           }

    In the first one I had a problem where on some videos youtube-dl downloaded a video in a lower framerate than what I requested (for example, if I request 1080p60FPS I get 1080p30FPS). I tried to fix this in the second method by searching for the best video for all qualities and framerates that are equal to or lower than the one I picked (for example, if I pick 1080p60FPS it would look for videos from 1080p60->1080p30->720p60->720p30->...->144p30).

    The second method however looks overly convoluted and stupid and another problem still remains. youtube-dl always picks the best audio quality no matter what video quality I choose. I want the audio quality to scale with the video quality (for example, if I pick 144p I want poor audio quality). There has got to be a better way.

    Maybe I am explaining this poorly but I basically want youtube-dl to ALWAYS (consistently) download the exact same video and audio format as the one that is displayed in the youtube video player itself for each picked video quality (see image below). How do I do that ?

    Example 1, Video and audio format codes of video in 4K (the numbers in the red circles are the format codes) :
    enter image description here

    Example 2, Video and audio format of same video but this time in 720p :
    enter image description here

    (should also pick a lower framerate video of same quality if that framerate is not available in the YouTube quality selector, for example 1080p30FPS in a 1080p60FPS video)

    Thanks !

  • FFMPEG failing to convert mov to flv

    3 mai 2018, par scripter78

    FFMPEG issue that I am not familiar with. seems to only happen with this particular file. Anyone by any chance can take a look at this long out put and provide any feedback on what might actually be causing this ?

    ffmpeg_18.exe -i "E:\TESTFILES\115637.mov" -vcodec libx264 -b:v 700k -s 720x480 -r 29.97 -pix_fmt yuv420p -vf yadif -aspect 4:3 -acodec libvo_aacenc -b:a 96k -ar 44100 -f mp4 -y "E:\TESTFILES\test\115637.flv"
    ffmpeg version N-39877-g4fa706a Copyright (c) 2000-2012 the FFmpeg developers
     built on Apr 16 2012 14:53:47 with gcc 4.6.3
     configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libass --enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-li
    bnut --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
     libavutil      51. 46.100 / 51. 46.100
     libavcodec     54. 14.101 / 54. 14.101
     libavformat    54.  3.100 / 54.  3.100
     libavdevice    53.  4.100 / 53.  4.100
     libavfilter     2. 70.100 /  2. 70.100
     libswscale      2.  1.100 /  2.  1.100
     libswresample   0. 11.100 /  0. 11.100
     libpostproc    52.  0.100 / 52.  0.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'E:\TESTFILES\115637.mov':
     Metadata:
       major_brand     : qt
       minor_version   : 537199360
       compatible_brands: qt
       creation_time   : 2018-05-03 20:48:28
     Duration: 00:00:30.03, start: 0.000000, bitrate: 154663 kb/s
       Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080, 151585 kb/s, SAR 1920:1920 DAR 16:9, 29.97 fps, 29.97 tbr, 30k tbn, 60k tbc
       Metadata:
         creation_time   : 2018-05-03 20:48:28
         handler_name    : Apple Alias Data Handler
       Stream #0:1(eng): Audio: pcm_s16le (lpcm / 0x6D63706C), 48000 Hz, 4 channels, s16, 3072 kb/s
       Metadata:
         creation_time   : 2018-05-03 20:48:28
         handler_name    : Apple Alias Data Handler
       Stream #0:2(eng): Data: none (tmcd / 0x64636D74)
       Metadata:
         creation_time   : 2018-05-03 20:51:29
         handler_name    : Apple Alias Data Handler
         timecode        : 00:00:00;00
    [buffer @ 035c33a0] w:1920 h:1080 pixfmt:yuv420p tb:1/1000000 sar:1920/1920 sws_param:flags=2
    [yadif @ 01e7caa0] mode:0 parity:-1 auto_enable:0
    [scale @ 01e7c6a0] w:1920 h:1080 fmt:yuv420p sar:1920/1920 -> w:720 h:480 fmt:yuv420p sar:32/27 flags:0x4
    [libx264 @ 035b8c40] using SAR=8/9
    [libx264 @ 035b8c40] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX FMA3
    [libx264 @ 035b8c40] profile High, level 3.0
    [libx264 @ 035b8c40] 264 - core 120 r2164 da19765 - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,
    11 fast_pskip=1 chroma_qp_offset=-2 threads=24 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitra
    te=700 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    [libvo_aacenc @ 01e7bae0] Unable to set encoding parameters
    Output #0, mp4, to 'E:\TESTFILES\test\115637.flv':
     Metadata:
       major_brand     : qt
       minor_version   : 537199360
       compatible_brands: qt
       creation_time   : 2018-05-03 20:48:28
       Stream #0:0(eng): Video: h264, yuv420p, 720x480 [SAR 8:9 DAR 4:3], q=-1--1, 700 kb/s, 90k tbn, 29.97 tbc
       Metadata:
         creation_time   : 2018-05-03 20:48:28
         handler_name    : Apple Alias Data Handler
       Stream #0:1(eng): Audio: aac, 44100 Hz, 4 channels, s16, 96 kb/s
       Metadata:
         creation_time   : 2018-05-03 20:48:28
         handler_name    : Apple Alias Data Handler
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 -> libx264)
     Stream #0:1 -> #0:1 (pcm_s16le -> libvo_aacenc)
    Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height