
Recherche avancée
Autres articles (10)
-
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...) -
Submit enhancements and plugins
13 avril 2011If you have developed a new extension to add one or more useful features to MediaSPIP, let us know and its integration into the core MedisSPIP functionality will be considered.
You can use the development discussion list to request for help with creating a plugin. As MediaSPIP is based on SPIP - or you can use the SPIP discussion list SPIP-Zone. -
Gestion générale des documents
13 mai 2011, parMédiaSPIP ne modifie jamais le document original mis en ligne.
Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)
Sur d’autres sites (3530)
-
ffmpeg IP camera unable to record
14 mai 2021, par trycatch22I am using an Amcrest POE camera. I have assigned it a static IP which I am able to confirm by logging into it via the browser. Its IP is 192.168.1.200.


I tried following the instructions in this link but couldn't get it to work. I get :


http://admin:admin@192.168.1.200/dd-a End of file



The official ffmpeg documentation does not talk about -segment_time or -segment_format. What is the ffmepg command to grab a stream for a fixed duration and write it to an .mp4 file ?


-
How do I record a specific application running on my Mac using ffmpeg ?
3 janvier 2018, par DaveI just installed ffmpeg with using home-brew on Mac HighSierra. I want to record the contents (video only is fine) of an application running on my machine (as opposed to my entire Desktop). So I tried running the below
davea$ ffmpeg -f gdigrab -framerate 25 -i title=DOSBox
ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Unknown input format: 'gdigrab'but as you can see, I’m getting this
Unknown input format: 'gdigrab'
error. What’s the right way to record video on my computer for only a specific application using ffmpeg ?
Edit : Using hte suggestion in comments, I got this other error ...
davea$ ffmpeg -f avfoundation -list_devices true -i ""
ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
[AVFoundation input device @ 0x7fcbc160d0c0] AVFoundation video devices:
[AVFoundation input device @ 0x7fcbc160d0c0] [0] FaceTime HD Camera
[AVFoundation input device @ 0x7fcbc160d0c0] [1] Capture screen 0
[AVFoundation input device @ 0x7fcbc160d0c0] AVFoundation audio devices:
[AVFoundation input device @ 0x7fcbc160d0c0] [0] Built-in Microphone
: Input/output error -
Dynamically record parts of a video stream using ffmpeg based on incoming events
12 septembre 2023, par ganjimSay I have a RTSP stream running on some server.


I want to record parts of this video stream based on some events that will come up on my machine.
My goal is to record 10 seconds before up to 10 seconds after the PTS in any received event. Consider that I have a way to synchronize the PTS between the sender and the receiver, but by the time I receive the events, its already streamed and is in the past.
So I either need to have the ffmpeg command running already, or to have buffered streaming video in my memory.


I just added some code with comments as a way to simulate the situation, it is not complete as I still don't have a working solution. But I'm looking to understand if ffmpeg has capabilities for dealing with rtsp streams suitable for this situation.


const { spawn } = require('child_process');

function processEvent(event){
 
 let startTime = event.pts - 10
 let endTime = event.pts + 10

 const ffmpegArgs = [
 '-i', "rtspUrl",
 '-ss', startTime.toString(),
 '-to', endTime.toString(),
 '-c', 'copy',
 '-f', 'mp4',
 `output_${startTime}_${endTime}.mp4` // Output filename
 ];
 // Here it is obviously not possible to give ffmpeg a negative startTime.
 // We either have to have spawned the ffmpeg command and somehow give it a starting time for recording on demand or have a buffering system in place.
 // Having a buffer to store every raw frame and then attach them after endTime is also considerably CPU and memory intensive.
 // Looking for alternative ways to achieve the same output.

 const ffmpegProcess = spawn('ffmpeg', ffmpegArgs, {
 stdio: 'inherit'
 });
}

// Code to simulate the events:
// imagine these pts to be relative to Date.now(), so using negative PTS to show the events are going to be in the past by the time we receive them.
setTimeout(() => {
 const event1= { pts: -30 };
 processEvent(event1);
}, 1000);

setTimeout(() => {
 const event2 = { pts: -20 };
 processEvent(event2);
}, 5000);