Recherche avancée

Médias (1)

Mot : - Tags -/berlin

Autres articles (52)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

Sur d’autres sites (12689)

  • FFMPEG RTMP STREAM RECORDING TIMEOUT

    11 novembre 2020, par abreski

    [SOLVED] — solution in FINAL EDIT
i am recording an rtmp livestream with ffmpeg, and looking to add a flag that will automatically stop processing the moment new data stops arriving.

    


    If i start and stop the script (stop by killing the process on demand), everything is fine, recording is saved and can be played.
However, when the stream is stopped from the source without a manual call to STOP, the script will still run for a bit and the resulting file will be corrupted (tested with manual stop call - works , and with stopping the stream before the recording , simulating browser/tab close or disconnect - fails)

    


    the command i'm running

    


    $command = "ffmpeg -i {$rtmpUrl} -c:v copy -c:a copy -t 3600 {$path} >/dev/null  2>/dev/null &";
$res = shell_exec($command)


    


    i tried adding -timeout 0 option before and after the input like this

    


    $command = "ffmpeg -timeout 0 -i {$rtmpUrl} -c:v copy -c:a copy -t 3600 {$path} >/dev/null  2>/dev/null &"; 


    


    and

    


    $command = "ffmpeg -i {$rtmpUrl} -c:v copy -c:a copy -timeout 0 -t 3600 {$path} >/dev/null  2>/dev/null &";


    


    but no improvement.

    


    What am i missing here ? is there any way to automatically stop the script when new data stops ariving from the livestream (meaning that stream is stopped and recording should stop aswell).

    


    Note $rtmpUrl and $path have been checked and everything works fine as long as the script is stopped before the livestream ends.

    


    Any suggestions are highly appreciated

    


    LATER EDIT : realised timeout was set in the wrong place, added it first but result was still the same, so still looking for any suggestions

    


    $command = "timout 0 ffmpeg -i {$rtmpUrl} -c:v copy -c:a copy -t 3600 {$path} >/dev/null  2>/dev/null &";


    


    FINAL EDIT
in case someone finds this thread looking for a solution in a similar case,
solved, timeout was not what i was looking for, instead using the -re flag fixed it for us.
Now script stops when no more new frames come in

    


    $command = "ffmpeg -re -i {$rtmpUrl} -c:v copy -c:a copy -t 3600 {$path} >/dev/null  2>/dev/null &";


    


  • Output a video with "slide up" transition using more than 100 images in FFMPEG ?

    9 juillet 2021, par Joseph Ladera Fugata

    I have more than a hundred images of the same size and format that my company wants to display at the big 9:16 (rotated 16:9) screen outside the front gate. It's supposed to be easy but they required me to have it slide from top to bottom, meaning that it should look like a smooth auto scroll effects. I searched here and there but no luck.

    


    I have tried xfade like this :

    


    ffmpeg -loop 1 -i input.txt -filter_complex
"xfade=transition=slideup:duration=10:offset=0,format=yuv420p" output.mp4


    


    It didn't do anything just a bunch of error referring to the inputs. Which is supposed to be just 2 images in the first place.

    


    The next thing I tried was using Concat from someone named @Gyan at his reply HERE and here's my version of the code :

    


    ffmpeg -y -f concat -safe 0 -i input.txt
-vf tile=1x%img_count%,loop=%_my_loop_count_var%:1:0,
crop=iw:ih/%img_count%:0:clip((t-%_start_time%)/%sec_per_img%*ih/%img_count%\,0\,ih*%img_count_minus_one%/%img_count%)
-r 25 -c:v libx264 -preset ultrafast output.mp4


    


    When I played with it, it gives a different output even do the image are all the same dimensions.

    


    I found someone on youtube used this but it is using bash and I am on windows. Unless someone here can convert it to a batch script would be great. I look into it and it seems like he's just V-stacking them kinda like what I did but there's more. I know I could have gone through win bash but I doubt the script will run on a non-Unix environment just by having bash, and I'm not yet familiar with Cygwin either.

    


    I also did tried other options posted by others here, I just forgot to bookmark them, but non of them works on more than a hundred images.

    


    I love to hear a response if anyone can help.

    


  • Node.js Webm live stream server : issues with tag

    10 décembre 2013, par breathe0

    I'm using Node.js as stream server to stream realtime Webm videos that is sent by FFMPEG (executed from another application, the stream is done via HTTP) and received by a webapp that uses the tag.

    This is what I'm doing : FFMPEG streams the received frames using the following command :

    ffmpeg -r 30 -f rawvideo  -pix_fmt bgra -s 640x480
    -i \\.\pipe\STREAM_PIPE -r 60
    -f segment  -s 240x160 -codec:v libvpx  -f webm
    http://my.domain.com/video_stream.webm

    (the stream comes from an application that uses the Kinect as source and communicates with FFMPEG through a pipe, sending one frame after another)

    When the webapp connects, it receives immediately this response from the server :

    HTTP/1.1 200 OK
    X-Powered-By: Express
    content-type: video/webm
    cache-control: private
    connection: close
    Date: Fri, 06 Dec 2013 14:36:31 GMT

    and a Webm header (previously stored on the server, with the same resolution and frame rate of the source stream and tested as working on VLC) is immediately appended. Then the webapp starts to receive the data streamed by FFMPEG. Here is a screenshot of Mkvinfo GUI showing the fields of the header :

    Header screenshot

    However, even if the Network tab of the Chrome console shows that there is an actual stream of data (meaning that what is streamed is not completely garbage, otherwise the connection would be dropped), the player doesn't display anything. We tried to manually prepend our header to the dumped video received by the webapp and VLC plays it just fine, but this is not happening with the tag.

    What can cause this problem ? Are we missing something about the encoding on the FFMPEG side or we stored wrong values on the header (or they're not enough) ?

    PS : I cannot rely on an extern stream server.

    PPS : We tried the following experiments :

    • substituting the video header with the one stored in the server makes the video playable on both vlc and video tag
    • if we dump the video that is already started (without an header) and we prepend the video header stored in the server or even its original header, the video is playable in VLC but not on the tag (we're carefully prepending the header just before the beggining of the cluster).