Recherche avancée

Médias (0)

Mot : - Tags -/optimisation

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (69)

  • 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 ;

  • 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 (...)

Sur d’autres sites (12226)

  • How to record playable video files in gstreamer even if recording is interrupted unexpectedly (e.g. power disconnects) ?

    16 septembre 2021, par Otter_warrior

    I have been recording video streams on my Jetson Xavier NX using a simple gstreamer pipeline such as this

    


    gst-launch-1.0 -v \
nvarguscamerasrc sensor-id=0 ! \
'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1' ! \
nvv4l2h265enc ! 'video/x-h265, stream-format=(string)byte-stream' ! \
h265parse ! qtmux ! filesink location=video.mp4 -e


    


    All is working if the recording is interrupted by keyboard interrupt Ctrl + C, but if the recording is interrupted unexpectedly (e.g. power gets disconnected) the resulting file has no playable stream, even if the file size is correct.

    


    I know that mp4 recording needs to be stopped properly otherwise it won't have the necessary information at the end of the file, but I was wondering if there was any other gstreamer pipelines or final file formats that would allow for an H265 encoded video file to be playable even if the recording is ended unexpectedly.

    


    It would be good even if the recorded file needed to be converted before being playable (e.g. with ffmpeg), as long as the information can be recovered without having to go through non-free mp4 recovery tools.

    


  • UWP C# and Windows Runtime Component C++ Permission Denied error when opening file

    29 décembre 2020, par Surya Solanki

    I have developed a UWP app in C# which contains a Windows Runtime Component C++ project. the app allows the user to choose an mp4 file and passes this file to the c++ code, which then utilizes ffmpeg libraries to retrieve the presentation time stamps of a video file and output them to a file.

    


    the issue i'm facing is that the c++ code is not able to open the mp4 file when using the avformat_open_input function :

    


    int PTSExtraction::parse_file(Platform::String^ filename)
{
    int ret = 0;
    AVPacket pkt = { 0 };


    std::wstring fileNameW(filename->Begin());
    std::string fileNameA(fileNameW.begin(), fileNameW.end());
    const wchar_t* w_chars = fileNameW.c_str();
    src_filename = fileNameA.c_str(); 

    if (avformat_open_input(&fmt_ctx, src_filename, NULL, NULL) < 0) {
        fprintf(stderr, "Could not open source file %s\n", src_filename);
        return 1; 
    }
    // rest of code 
}


    


    the error received by avformat_open_input is Permission Denied. I cannot even open a random text file in this function by doing :

    


    ofstream output; 
output.open("output.txt");


    


    I realize there are file system permissions that are blocking the C++ component of my uwp app from opening files. here are the things i have tried so far :

    


    


    None of these allow the C++ component to open any files. i would really appreciate if anyone has a solution for this problem.

    


  • hls fails to play m3u8 playlist with videojs

    9 novembre 2020, par charlie

    I created an hls stream from yuv frames with ffmpeg which appears to work just fine. It creates a playlist and updates that, and all .ts files as expected. However even videojs refuses to play it, and I really run out of ideas, probably missing the obvious ?

    


    First, the m3u8 list which is continuously updated :

    


    #EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:190
#EXTINF:2.000000,
test190.ts
#EXTINF:2.000000,
test191.ts
#EXTINF:2.000000,
test192.ts
#EXTINF:2.000000,
test193.ts
#EXTINF:2.000000,
test194.ts


    


    Those .ts files exist and have sizes of approx 250 kBytes.
Then, I open this standard videojs html file (residing in the same directory) :

    


    &#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;&#xA;&#xA;  <h1>VSTream</h1>&#xA;&#xA;  &#xA;    <source src="test.m3u8" type="application/x-mpegURL">&#xA;  &#xA;  &#xA;  <code class="echappe-js">&lt;script src='http://stackoverflow.com/feeds/tag/video.min.js'&gt;&lt;/script&gt;&#xA;  &lt;script src='http://stackoverflow.com/feeds/tag/videojs-http-streaming.min.js'&gt;&lt;/script&gt;&#xA;  &#xA;  &lt;script&gt;&amp;#xA;    var player = videojs(&amp;#x27;my_video_1&amp;#x27;);&amp;#xA;  &lt;/script&gt;&#xA;  &#xA;&#xA;&#xA;

    &#xA;

    I open this in Firefox (or Chrome, or Edge, none works) and use its debugger which in the console shows :

    &#xA;

    &#xA;

    VIDEOJS : WARN : A plugin named "reloadSourceOnError" already exists.&#xA;You may want to avoid re-registering plugins ! video.min.js:12:977&#xA;Specified “type” attribute of “application/x-mpegURL” is not&#xA;supported. Load of media resource test.m3u8 failed. vstream.html All&#xA;candidate resources failed to load. Media load paused. vstream.html&#xA;XML Parsing Error : syntax error Location : file :///C :/test/test.m3u8&#xA;Line Number 1, Column 1 : 2 test.m3u8:1:1 MouseEvent.mozPressure is&#xA;deprecated. Use PointerEvent.pressure instead. video.min.js:12:9031&#xA;VIDEOJS : ERROR : (CODE:3 MEDIA_ERR_DECODE) Playback cannot continue. No&#xA;available working or supported playlists. Object code : 3, message :&#xA;"Playback cannot continue. No available working or supported&#xA;playlists." video.min.js:12:977

    &#xA;

    &#xA;

    This doesn't make much sense to me. Why would it throw an XML parsing error for an m3u8 file ? Of course, the MEDIA_ERR_DECODE points in some direction, but the same problem persists with fMP4 files.

    &#xA;

    The relevant ffmpeg c++ code (format is "hls" and formatContext works well in other scenarios, gop is 2) :

    &#xA;

        AVDictionary* options = 0;&#xA;    if (fragmented)&#xA;    {&#xA;        // type&#xA;        if (codecID == AV_CODEC_ID_H264)&#xA;            av_dict_set (&amp;options, "hls_segment_type", "fmp4", 0);&#xA;        else&#xA;            av_dict_set (&amp;options, "hls_segment_type", "mpegts", 0);&#xA;&#xA;        av_dict_set (&amp;options, "hls_time", "2.0", 0);&#xA;        av_dict_set_int (&amp;options, "hls_list_size", 5, 0);&#xA;        av_dict_set (&amp;options, "hls_flags", "delete_segments", 0);&#xA;    }&#xA;&#xA;    int ret = avformat_write_header (formatContext, &amp;options);&#xA;

    &#xA;

    ...which returns success. Then writing frames

    &#xA;

        int ret = avcodec_send_frame (videoStream->codecContext, frame);&#xA;    av_init_packet (avPacket);&#xA;    AVRational timeBase = videoStream->getTimeBase ();&#xA;    avPacket->stream_index = streams.indexOf (videoStream);&#xA;    ret = avcodec_receive_packet (videoStream->codecContext, avPacket);&#xA;    avPacket->duration = av_rescale_q (1, videoStream->codecContext->time_base, videoStream->getTimeBase ());&#xA;    pts &#x2B;= avPacket->duration;&#xA;    avPacket->pts = pts;&#xA;    avPacket->dts = pts;    //  AV_NOPTS_VALUE;&#xA;    ret = av_interleaved_write_frame (formatContext, avPacket);&#xA;

    &#xA;

    (videoStream here is an internal object representing the avstream).&#xA;I've omitted error checks for clarity. All return values show success.&#xA;Thanks for any help on this !

    &#xA;