Recherche avancée

Médias (39)

Mot : - Tags -/audio

Autres articles (53)

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

  • La sauvegarde automatique de canaux SPIP

    1er avril 2010, par

    Dans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
    Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)

  • Script d’installation automatique de MediaSPIP

    25 avril 2011, par

    Afin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
    Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
    La documentation de l’utilisation du script d’installation (...)

Sur d’autres sites (8033)

  • ffmpeg ignores seg_duration with svt-av1

    25 décembre 2022, par Asav Mali

    I'm trying to convert a mp4 file containing a HEVC HDR10 stream to AV1 using SVT-AV1 with ffmpeg. For some reason the seg_duration parameter gets ignored :

    


    


    /usr/bin/ffmpeg -i "/tmp/VODProcessing/testclip.mp4" -map 0:0 -c:v
libsvtav1 -b:v 1048576 -maxrate:v 1101004 -bufsize 4194304 -vf
zscale=width=640:height=480 -svtav1-params
"tile-columns=0:tile-rows=0:scd=0:color-primaries=9:transfer-characteristics=16:matrix-coefficients=9:input-depth=10:fast-decode=1:mastering-display=G(0.265,0.69)B(0.15,0.06)R(0.68,0.32)WP(0.3127,0.329)L(4000.0,0.005):content-light=368,226:enable-hdr=1:color-range=1"
-pix_fmt yuv420p10le -color_trc smpte2084 -color_primaries bt2020 -colorspace bt2020nc -chroma_sample_location:v topleft -color_range:v pc -max_muxing_queue_size 1024 -preset 7 -bf 0 -force_key_frames
"expr:gte(t,n_forced*2)" -keyint_min 48 -use_timeline 1 -use_template
1 -map_metadata -1 -map_chapters -1 -f hls -seg_duration 4 -hls_time 4
-streaming 1 -hls_list_size 0 -hls_segment_filename "/tmp/VODProcessing/output/testclip/v-av01-480p-av01.0.12M.10_PQ/f-%04d.m4s"
-hls_fmp4_init_filename "init-v-av01-480p-av01.0.12M.10_PQ.m4s" -hls_segment_type fmp4 -hls_playlist_type vod -movflags frag_keyframe+frag_every_frame+write_colr+prefer_icc+skip_trailer+faststart
-hls_flags independent_segments -strict experimental "/tmp/VODProcessing/output/testclip/v-av01-480p-av01.0.12M.10_PQ/master.m3u8"

    


    


    Using a similar command and transcoding HEVC to HEVC works as expected and the segment duration is fine. Does this make any sense ? Checking the generated master.m3u8 file always gives me this for AV1 :

    


    #EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-MAP:URI="init-v-av01-480p-av01.0.12M.10_PQ.m4s"
#EXTINF:6.715042,
f-0000.m4s
#EXTINF:6.715042,
f-0001.m4s
#EXTINF:6.715042,
f-0002.m4s
#EXTINF:6.715042,
f-0003.m4s
#EXTINF:6.715042,
f-0004.m4s
#EXTINF:6.715042,
f-0005.m4s
#EXTINF:6.715042,
f-0006.m4s
#EXTINF:6.715042,
f-0007.m4s
#EXTINF:6.715042,
f-0008.m4s
#EXTINF:6.715042,
f-0009.m4s
#EXTINF:6.715042,
f-0010.m4s
#EXTINF:6.715042,
f-0011.m4s
#EXTINF:6.715042,
f-0012.m4s
#EXTINF:6.715042,
f-0013.m4s
#EXTINF:6.715042,
f-0014.m4s
#EXTINF:6.715042,
f-0015.m4s
#EXTINF:0.583917,
f-0016.m4s
#EXT-X-ENDLIST


    


    As you can see, the segments are not 4 seconds long as defined in my command, they are 6.715042 seconds long, why that ???

    


    Thanks in advance

    


  • OpenCV to ffplay from named pipe (fifo)

    13 juillet 2017, par Betsalel Williamson

    I’ve been working on piping video from OpenCV in C++. I’ve tried to pipe the image after processing from OpenCV to a named pipe with the end goal of republishing the stream using a webserver either with VLC or a NodeJS server.

    Where I’m stuck is that the output from OpenCV doesn’t seem to be processing correctly. The video always has artifacts even though it should be the raw video.

    enter image description here

    int main(int argc, char** argv)
    {

       VideoCapture camera(argv[1]);

       float fps = 15;

       // VLC raw video
       printf("Run command:\n\ncat /tmp/myfifo | cvlc --demux=rawvideo --rawvid-fps=%4.2f --rawvid-width=%.0f --rawvid-height=%.0f  --rawvid-chroma=RV24 - --sout \"#transcode{vcodec=h264,vb=200,fps=30,width=320,height=240}:std{access=http{mime=video/x-flv},mux=ffmpeg{mux=flv},dst=:8081/stream.flv}\""
           ,fps
           ,camera.get(CV_CAP_PROP_FRAME_WIDTH)
           ,camera.get(CV_CAP_PROP_FRAME_HEIGHT)
           );


       // ffplay raw video
       printf("Run command:\n\ncat /tmp/myfifo | ffplay -f rawvideo -pixel_format bgr24 -video_size %.0fx%.0f -framerate %4.2f -i pipe:"
           ,camera.get(CV_CAP_PROP_FRAME_WIDTH)
           ,camera.get(CV_CAP_PROP_FRAME_HEIGHT)
           ,fps
           );

       int fd;
       int status;

       char const * myFIFO = "/tmp/myfifo";

       if ((status = mkfifo(myFIFO, 0666)) < 0) {
           // printf("Fifo mkfifo error: %s\n", strerror(errno));
           // exit(EXIT_FAILURE);
       } else {
           cout << "Made a named pipe at: " << myFIFO << endl;
       }

       cout << "\n\nHit any key to continue after running one of the previously listed commands..." << endl;
       cin.get();

       if ((fd = open(myFIFO,O_WRONLY|O_NONBLOCK)) < 0) {
           printf("Fifo open error: %s\n", strerror(errno));
           exit(EXIT_FAILURE);
       }  

       while (true)
       {
           if (waitKey(1) > 0)
           {
               break;    
           }

           Mat colorImage;
           camera >> colorImage;

           // method: named pipe as matrix writes data to the named pipe, but image has glitch
           size_t bytes = colorImage.total() * colorImage.elemSize();

           if (write(fd, colorImage.data, bytes) < 0) {
               printf("Error in write: %s \n", strerror(errno));
           }            
       }

       close(fd);

       exit(EXIT_SUCCESS);
    }
  • OpenCV to ffplay from named pipe (fifo)

    16 novembre 2016, par Betsalel Williamson

    I’ve been working on piping video from OpenCV in C++. I’ve tried to pipe the image after processing from OpenCV to a named pipe with the end goal of republishing the stream using a webserver either with VLC or a NodeJS server.

    Where I’m stuck is that the output from OpenCV doesn’t seem to be processing correctly. The video always has artifacts even though it should be the raw video.

    enter image description here

    int main(int argc, char** argv)
    {

       VideoCapture camera(argv[1]);

       float fps = 15;

       // VLC raw video
       printf("Run command:\n\ncat /tmp/myfifo | cvlc --demux=rawvideo --rawvid-fps=%4.2f --rawvid-width=%.0f --rawvid-height=%.0f  --rawvid-chroma=RV24 - --sout \"#transcode{vcodec=h264,vb=200,fps=30,width=320,height=240}:std{access=http{mime=video/x-flv},mux=ffmpeg{mux=flv},dst=:8081/stream.flv}\""
           ,fps
           ,camera.get(CV_CAP_PROP_FRAME_WIDTH)
           ,camera.get(CV_CAP_PROP_FRAME_HEIGHT)
           );


       // ffplay raw video
       printf("Run command:\n\ncat /tmp/myfifo | ffplay -f rawvideo -pixel_format bgr24 -video_size %.0fx%.0f -framerate %4.2f -i pipe:"
           ,camera.get(CV_CAP_PROP_FRAME_WIDTH)
           ,camera.get(CV_CAP_PROP_FRAME_HEIGHT)
           ,fps
           );

       int fd;
       int status;

       char const * myFIFO = "/tmp/myfifo";

       if ((status = mkfifo(myFIFO, 0666)) < 0) {
           // printf("Fifo mkfifo error: %s\n", strerror(errno));
           // exit(EXIT_FAILURE);
       } else {
           cout << "Made a named pipe at: " << myFIFO << endl;
       }

       cout << "\n\nHit any key to continue after running one of the previously listed commands..." << endl;
       cin.get();

       if ((fd = open(myFIFO,O_WRONLY|O_NONBLOCK)) < 0) {
           printf("Fifo open error: %s\n", strerror(errno));
           exit(EXIT_FAILURE);
       }  

       while (true)
       {
           if (waitKey(1) > 0)
           {
               break;    
           }

           Mat colorImage;
           camera >> colorImage;

           // method: named pipe as matrix writes data to the named pipe, but image has glitch
           size_t bytes = colorImage.total() * colorImage.elemSize();

           if (write(fd, colorImage.data, bytes) < 0) {
               printf("Error in write: %s \n", strerror(errno));
           }            
       }

       close(fd);

       exit(EXIT_SUCCESS);
    }