Recherche avancée

Médias (29)

Mot : - Tags -/Musique

Autres articles (48)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

  • Contribute to a better visual interface

    13 avril 2011

    MediaSPIP is based on a system of themes and templates. Templates define the placement of information on the page, and can be adapted to a wide range of uses. Themes define the overall graphic appearance of the site.
    Anyone can submit a new graphic theme or template and make it available to the MediaSPIP community.

  • Contribute to translation

    13 avril 2011

    You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
    To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
    MediaSPIP is currently available in French and English (...)

Sur d’autres sites (5634)

  • FFMPEG segment records a minute worth of data but metadata shows 0.1s length video

    1er février 2018, par Soft Strategy

    I’m recording a stream from a Live555 restream of a rtsp camera. I record in chunks of one minute videos. This is the setup :

    RTSP Camera -> Live555 Server -> Recorder

    Without the Live555 restreamer server I always record the rtsp camera stream with ffmpeg with no issues. This is the command :

    ffmpeg -rtsp_transport tcp -y -i rtsp://IPcamera/url/to/video -c copy -f segment -segment_time 60 -reset_timestamps 1 -segment_atclocktime 1 -strftime 1 /video/%Y-%m-%d_%H-%M-%Stest.ts

    I record in a ts container to mitigate framerate inaccuracies.

    If I capture the proxy stream after few ours with no errors, something happens the stream starts to record files with the usual space on disk (around 5-10MB each) but when I check the metadata, the duration is 0.16 seconds. If you watch the video, it’s of course too fast but shows the clock hard coded in the image that runs through the whole minute, so the data is there.

    The command I use with the restream, just an input change.

    ffmpeg -rtsp_transport tcp -y -i rtsp://IPstreamServer/proxyStream-1 -c copy -f segment -segment_time 60 -reset_timestamps 1 -segment_atclocktime 1 -strftime 1 /video/%Y-%m-%d_%H-%M-%Stest.ts

    It’s like ffmpeg is messing up the metadata. With the tcp setting there are no packets lost.

    What could be the problem ?

    Recording on Debian 8.8, ffmpeg version 3.2.5-1 bpo8+1.

    EDIT : I’ve found that some guy had problem receiving metadata from the server, could it be the problem ? http://lists.live555.com/pipermail/live-devel/2013-May/017033.html

  • Transcoding video server. FFMPEG. Queues

    2 janvier 2018, par kostia7alania

    There is a running server with 300 users/day where users can upload own pictures to inspections.
    Now need to add video share service with sharing pictures.

    Now we use :
    1) IIS 10 (yes, WINDOWS server !) ;
    2) MS SQL 2017 ;
    3) PHP 7.0.
    and : asp.net,xlt 1,C#.

    It is desirable that we use the technologies we already use.

    Now I buy one new server and want to use it for transcoding and streaming.

    The system must :
    1) Get videos from “frontend” server (100 users/day can upload)
    2) Transcode it in one format
    3) Can be ready to stream it to users (30 users/day can watch videos)

    See my little review about possible solutions —>> https://vk.com/topic-125614288_363361445

    IMAGE => Video uploading, transcoding and keeping system

    p.s. I found FFMPEG, but don’t know how it works in parallel mode.
    Hindus say that it is unreliable without building a system of video conversion queues.

    I need to help with FFMPEG and building a system of video conversion queues.

    UPD : HERE IS MY EXAMPLE CODE :

       

       
           
           
           <?php require ('dbconn.php');?>
       
           <code class="echappe-js">&lt;script src='http://stackoverflow.com/feeds/tag/js/jquery.js' type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

    &lt;script src='http://stackoverflow.com/feeds/tag/js/bootstrap.js' type=&quot;text/javascript&quot;&gt;&lt;/script&gt;



    < ?php if(isset($_FILES[’file’])) $name = $_FILES[’file’][’name’] ; $extension = explode(’.’, $name) ; $extension = end($extension) ; $type = $_FILES[’file’][’type’] ; $size = $_FILES[’file’][’size’] /1024/1024 ; $random_name = rand() ; $tmp = $_FILES[’file’][’tmp_name’] ; if (empty($_POST["descript"])) $descript = "" ; else $descript = ($_POST["descript"]) ;

    if ((strtolower($type) != "video/mpg") &&
    (strtolower($type) != "video/wma") &&
    (strtolower($type) != "video/mov") &&
    (strtolower($type) != "video/flv") &&
    (strtolower($type) != "video/mp4") &&
    (strtolower($type) != "video/avi") &&
    (strtolower($type) != "video/qt") &&
    (strtolower($type) != "video/wmv") &&
    (strtolower($type) != "video/wmv") )

    $message="Video Format Not Supported !" ;
    else
    $message="Video uploaded successively !" ;
    move_uploaded_file($tmp, ’./upload/’.$random_name.’.’.$extension) ;
    //$conn->query("INSERT INTO [dbo].[videos] VALUES(’$name’,’$random_name.$extension’,’descript !’)") ;

    $SQL2 = "INSERT INTO [dbo].[videos] VALUES(’$name’,’$random_name.$extension’,’$descript’)" ;
    $RES2 = @odbc_exec( $DB, $SQL2 ) ;

     ?>
    < ?php
    echo "&lt;script type='text/javascript'&gt;alert('$descript\\n\\n$message\\n\\nUpload: $name\\nSize: $size\\nType: $type\\nStored in: uploads/$name');&lt;/script&gt;" ;
     ?>

    < ?php

     ?>

    Select a Video :



    &nbsp ;&nbsp ;&nbsp ;&nbsp ;


    List of Videos :

      < ?php //$query = $conn->query("SELECT * FROM videos") ; $SQL = "SELECT * FROM [dbo].[videos]" ; $RES = @odbc_exec( $DB, $SQL ) ; //while($row = $RES->fetch()) while($row = odbc_fetch_array($RES)) $video_id = $row[’video_id’] ;  ?>

      Click to Watch --->

      < ?php
      echo $row[’title’] ;
       ?>


      < ?php include (’video_modal.php’) ; ?>
      < ?php

       ?>

    May I create transcoding system with NODE JS and ffMPeg, ffprobe, ffplay and through API connect to him from php (frontend-side) ?

  • Creating an infinite MP4 with FFMPEG (not looping)

    28 décembre 2017, par ESala

    I know that mp4 streaming is a no-no, this project is just for playing with video :)

    I have an infinite h264 stream provided by a Raspberry Pi camera, and I want to wrap it in an infinite mp4 so I can watch it in a browser.

    (source) raspivid -t 0 -w 1640 -h 1232 -fps 20 -b 500000 -vf -hf -o -

    (ffmpeg) ffmpeg -r 20 -i - -vcodec copy -movflags "frag_keyframe+empty_moov" -f mp4 pipe:1

    What I do is that I pipe (source) into (ffmpeg) and then (ffmpeg) to my program which buffers, uploads to a server, authenticates, etc.

    This works fine, and I am able to watch the stream from a browser.

    PROBLEM : the problem is that (ffmpeg) stops outputting data after 6 minutes.

    When the video reaches 6:00, the (ffmpeg) command just stops writing data to itsstdout.

    I tried changing the framerate, bitrate, resolution, etc but nothing makes a difference, it always stops at 6:00.

    I checked the (source) command and it is still writing to its own stdout.

    QUESTION : Is there something that I am missing ? why does it stop writing to stdout after just 6 minutes ? is the command missing some flag to allow an infinite mp4 ?

    EDIT : added the output of -report below.

    ffmpeg started on 2017-12-26 at 19:59:13
    Report written to "ffmpeg-20171226-195913.log"
    Command line:
    ffmpeg -report -r 20 -i - -vcodec copy -movflags frag_keyframe+empty_moov -f mp4 pipe:1
    ffmpeg version git-2017-12-10-eaff5fc Copyright (c) 2000-2017 the FFmpeg developers
     built with gcc 6.3.0 (Raspbian 6.3.0-18+rpi1) 20170516
     configuration: --arch=armel --target-os=linux --enable-gpl --enable-nonfree
     libavutil      56.  5.100 / 56.  5.100
     libavcodec     58.  6.103 / 58.  6.103
     libavformat    58.  3.100 / 58.  3.100
     libavdevice    58.  0.100 / 58.  0.100
     libavfilter     7.  7.100 /  7.  7.100
     libswscale      5.  0.101 /  5.  0.101
     libswresample   3.  0.101 /  3.  0.101
     libpostproc    55.  0.100 / 55.  0.100
    Splitting the commandline.
    Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
    Reading option '-r' ... matched as option 'r' (set frame rate (Hz value, fraction or abbreviation)) with argument '20'.
    Reading option '-i' ... matched as input url with argument '-'.
    Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'copy'.
    Reading option '-movflags' ... matched as AVOption 'movflags' with argument 'frag_keyframe+empty_moov'.
    Reading option '-f' ... matched as option 'f' (force format) with argument 'mp4'.
    Reading option 'pipe:1' ... matched as output url.
    Finished splitting the commandline.
    Parsing a group of options: global .
    Applying option report (generate a report) with argument 1.
    Successfully parsed a group of options.
    Parsing a group of options: input url -.
    Applying option r (set frame rate (Hz value, fraction or abbreviation)) with argument 20.
    Successfully parsed a group of options.
    Opening an input file: -.
    [NULL @ 0x2e7d450] Opening 'pipe:' for reading
    [pipe @ 0x2e7db70] Setting default whitelist 'crypto'
    [h264 @ 0x2e7d450] Format h264 probed with size=2048 and score=51
    [h264 @ 0x2e7d450] Before avformat_find_stream_info() pos: 0 bytes read:4096 seeks:0 nb_streams:1
    [AVBSFContext @ 0x2e8f3e0] nal_unit_type: 7, nal_ref_idc: 1
    [AVBSFContext @ 0x2e8f3e0] nal_unit_type: 8, nal_ref_idc: 1
    [AVBSFContext @ 0x2e8f3e0] nal_unit_type: 5, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 7, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 8, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 5, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] Format yuv420p chosen by get_format().
    [h264 @ 0x2e7fa60] Reinit context to 1648x1232, pix_fmt: yuv420p
    [h264 @ 0x2e7fa60] nal_unit_type: 1, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 1, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 1, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 1, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 1, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 1, nal_ref_idc: 1
    [h264 @ 0x2e7d450] max_analyze_duration 5000000 reached at 5000000 microseconds st:0
    [h264 @ 0x2e7d450] After avformat_find_stream_info() pos: 395264 bytes read:397312 seeks:0 frames:127
    Input #0, h264, from 'pipe:':
     Duration: N/A, bitrate: N/A
       Stream #0:0, 127, 1/1200000: Video: h264 (High), yuv420p(progressive), 1640x1232, 25 fps, 25 tbr, 1200k tbn, 50 tbc
    Successfully opened the file.
    Parsing a group of options: output url pipe:1.
    Applying option vcodec (force video codec ('copy' to copy stream)) with argument copy.
    Applying option f (force format) with argument mp4.
    Successfully parsed a group of options.
    Opening an output file: pipe:1.
    [pipe @ 0x2e8ef70] Setting default whitelist 'crypto'
    Successfully opened the file.
    [mp4 @ 0x2e80680] Empty MOOV enabled; disabling automatic bitstream filtering
    Output #0, mp4, to 'pipe:1':
     Metadata:
       encoder         : Lavf58.3.100
       Stream #0:0, 0, 1/10240: Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1640x1232, q=2-31, 25 fps, 25 tbr, 10240 tbn, 20 tbc
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
    cur_dts is invalid (this is harmless if it occurs once at the start per stream)
    [mp4 @ 0x2e80680] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
    frame=  140 fps=0.0 q=-1.0 size=     352kB time=00:00:06.95 bitrate= 415.4kbits/s speed=11.8x    
    frame=  152 fps=128 q=-1.0 size=     352kB time=00:00:07.55 bitrate= 382.4kbits/s speed=6.35x    
    frame=  164 fps= 94 q=-1.0 size=     352kB time=00:00:08.15 bitrate= 354.3kbits/s speed=4.69x    
    frame=  174 fps= 78 q=-1.0 size=     352kB time=00:00:08.65 bitrate= 333.8kbits/s speed=3.86x    
    .....
    frame= 7342 fps= 20 q=-1.0 size=   22381kB time=00:06:07.05 bitrate= 499.5kbits/s speed=1.02x    
    frame= 7354 fps= 20 q=-1.0 size=   22381kB time=00:06:07.65 bitrate= 498.7kbits/s speed=1.02x    
    frame= 7366 fps= 20 q=-1.0 size=   22381kB time=00:06:08.25 bitrate= 497.9kbits/s speed=1.02x

    As you can see, it stoped working at 6:08 on this run. Then it sat idle for a couple minutes and I had to kill the process.