
Recherche avancée
Médias (1)
-
Bug de détection d’ogg
22 mars 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Video
Autres articles (43)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne file d’attente stockée dans la base de donnée
Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...) -
Ajouter notes et légendes aux images
7 février 2011, parPour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
Modification lors de l’ajout d’un média
Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...) -
Les tâches Cron régulières de la ferme
1er décembre 2010, parLa gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
Le super Cron (gestion_mutu_super_cron)
Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)
Sur d’autres sites (12268)
-
Xvfb records a black screen
11 mai 2024, par VivekI am trying a record a video by running xvfb inside a docker image. No matter what I do it gives me black screen.


Screen size same in xvfb and ffmpeg and puppeteer.


It will would really great if someone can help.



start-xvfb.sh
---------------------------------------------------------------------
# Start Xvfb
Xvfb :99 -screen 0 1280x720x24 &

# Set the display environment variable
export DISPLAY=:99

# Run the application (assuming it starts with npm start)
npm run dev



Dockerfile


FROM node:lts-alpine3.19

# Install dependencies using apk
RUN apk update && \
 apk add --no-cache \
 gnupg \
 ffmpeg \
 libx11 \
 libxcomposite \
 libxdamage \
 libxi \
 libxtst \
 nss \
 cups-libs \
 libxrandr \
 alsa-lib \
 pango \
 gtk+3.0 \
 xvfb \
 bash \
 curl \
 udev \
 ttf-freefont \
 chromium \
 chromium-chromedriver

# Set working directory
WORKDIR /app

# Copy package.json and install dependencies
COPY package.json .
RUN npm install --force

# Copy remaining source code
COPY . .

# Add a script to start Xvfb
COPY start-xvfb.sh /app/start-xvfb.sh
RUN chmod +x /app/start-xvfb.sh

# Expose the port
EXPOSE 4200
EXPOSE 3000

# Command to start Xvfb and run the application
CMD ["./start-xvfb.sh"]



Below


this is code code that launches puppeteer and from a nodejs application and create spawns a process for ffmpeg


export class UnixBrowserRecorder implements Recorder {

 url = 'https://stackoverflow.com/questions/3143698/uncaught-syntaxerror-unexpected-token'; // Replace with your URL
 outputFilePath = `/app/output_video.mp4`; // Output file path within the container
 durationInSeconds = 6; // Duration of the video in seconds
 resolution = '1280x720';

 public async capture(): Promise<string> {
 const browser = await puppeteer.launch({
 args: [
 '--no-sandbox', // Required in Docker
 '--disable-setuid-sandbox', // Required in Docker
 '--disable-dev-shm-usage', // Required in Docker
 '--headless', // Run browser in headless mode
 '--disable-gpu', // Disable GPU acceleration
 `--window-size=${this.resolution}` // Set window size
 ],
 executablePath: '/usr/bin/chromium' // Specify the path to Chromium executable
 });

 const page = await browser.newPage();
 await page.goto(this.url);

 await page.screenshot({
 "type": "png", // can also be "jpeg" or "webp" (recommended)
 "path": `/app/screenshot.png`, // where to save it
 "fullPage": true, // will scroll down to capture everything if true
 });

 //ffmpeg -video_size `DISPLAY=:5 xdpyinfo | grep 'dimensions:'|awk '{print $2}'` -framerate 30 -f x11grab -i :5.0+0,0 output.mpg

 const ffmpegProcess = spawn('ffmpeg', [
 '-video_size', this.resolution,
 '-framerate', '30',
 '-f', 'x11grab',
 '-i', ':99', // Use display :99 (assuming Xvfb is running on this display)
 '-t', this.durationInSeconds.toString(),
 '-c:v', 'libx264',
 '-loglevel', 'debug',
 '-pix_fmt', 'yuv420p',
 this.outputFilePath
 ]);

 // Log ffmpeg output
 ffmpegProcess.stdout.on('data', data => {
 console.log(`ffmpegProcess stdout: ${data}`);
 });

 ffmpegProcess.stderr.on('data', data => {
 console.error(`ffmpegProcess stderr: ${data}`);
 });

 // Handle ffmpegProcess process exit
 ffmpegProcess.on('close', code => {
 console.log(`ffmpeg process exited with code ${code}`);
 });

 // Wait for the duration to complete
 await new Promise(resolve => setTimeout(resolve, this.durationInSeconds * 1000));

 // Close the FFmpeg stream and process
 ffmpegProcess.stdin.end();
 // Close Puppeteer
 await page.close();
 await browser.close();

 return "Video generated successfully";
 }
}
</string>




-
ffmpeg command produces black image as output
3 mars 2020, par Nishad DESHMUKHInput #0, video4linux2,v4l2, from ’/dev/video0’ :
Duration : N/A, start : 13555.753906, bitrate : 147456 kb/s
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 147456 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
Stream mapping :
Stream #0:0 -> #0:0 (rawvideo (native) -> mjpeg (native))
Press [q] to stop, [?] for help
[swscaler @ 0x55fd0eafa3e0] deprecated pixel format used, make sure you did set range correctly
Output #0, image2, to ’test1.jpeg’ :Metadata :
encoder : Lavf57.83.100
Stream #0:0: Video: mjpeg, yuvj422p(pc), 640x480, q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc
Metadata:
encoder : Lavc57.107.100 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1frame= 1 fps=0.0 q=1.6 Lsize=N/A time=00:00:00.03 bitrate=N/A speed=8.41x
video:3kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead : unknown
-
FFPLAY shows video, but FFMPEG just shows black
22 mai 2017, par ahenshawI’m trying to record video/audio from a VIDBOX device using ffmpeg. Using Windows 10 and ffmpeg version N-86129-g1e8daf3, I can see and hear the video/audio fine when I execute
ffplay -f dshow -i video="VIDBOX NW07":audio="Microphone (VIDBOX NW07)"
but, I only record a black screen (and the correct audio) when I execute
ffmpeg -f dshow -i video="VIDBOX NW07":audio="Microphone (VIDBOX NW07)" -c:v libx264 out.mp4
What could be causing this to work in ffplay but not ffmpeg ?