
Recherche avancée
Médias (9)
-
Stereo master soundtrack
17 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Audio
-
Elephants Dream - Cover of the soundtrack
17 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Image
-
#7 Ambience
16 octobre 2011, par
Mis à jour : Juin 2015
Langue : English
Type : Audio
-
#6 Teaser Music
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#5 End Title
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#3 The Safest Place
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
Autres articles (112)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Keeping control of your media in your hands
13 avril 2011, parThe vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...) -
Publier sur MédiaSpip
13 juin 2013Puis-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
Sur d’autres sites (16379)
-
How to live video stream using node API(Read file with chunk logic)
28 septembre 2023, par Mukesh Singh ThakurI want to make a live video streaming API and send the video buffer chunk data to an HTML.
I am using rtsp URL.
The chunk logic does not work. The video only plays for 5 seconds then stops.


index.js file


const express = require('express');
const ffmpeg = require('fluent-ffmpeg');
const fs = require('fs');
const path = require('path');

const app = express();
const port = 3000;

app.get('/', (req, res) => {
 res.sendFile(__dirname + "/index.html");
});

const rtspUrl = 'rtsp://zephyr.rtsp.stream/movie?streamKey=64fd08123635440e7adc17ba31de2036';
const chunkDuration = 5; // Duration of each chunk in seconds


app.get('/video', (req, res) => {
 const outputDirectory = path.join(__dirname, 'chunks');
 if (!fs.existsSync(outputDirectory)) {
 fs.mkdirSync(outputDirectory);
 }

 const startTime = new Date().getTime();
 const outputFileName = `chunk_${startTime}.mp4`;
 const outputFilePath = path.join(outputDirectory, outputFileName);

 const command = ffmpeg(rtspUrl)
 .inputFormat('rtsp')
 // .inputOptions(['-rtsp_transport tcp'])
 .videoCodec('copy')
 .output(outputFilePath)
 .duration(chunkDuration)
 .on('start', () => {
 console.log(`start ${outputFileName}`);
 })
 .on('end', () => {
 console.log(`Chunk ${outputFileName} saved`);
 res.setHeader('Content-Type', 'video/mp4');
 res.sendFile(outputFilePath, (err) => {
 if (err) {
 console.error('Error sending file:', err);
 } else {
 fs.unlinkSync(outputFilePath); // Delete the chunk after it's sent
 }
 });
 })
 .on('error', (error) => {
 console.error('Error: ', error);
 });

 command.run();
});

app.listen(port, () => {
 console.log(`API server is running on port ${port}`);
});



index.html






 
 
 
 



 <video width="50%" controls="controls" autoplay="autoplay">
 <source src="/video" type="video/mp4"></source>
 Your browser does not support the video tag.
 </video>






package.json


{
.....
 "scripts": {
 "test": "echo \"Error: no test specified\" && exit 1",
 "start": "nodemon index.js"
 },
.....
}



-
How to live video stream using node API (Read file with chunk logic)
28 septembre 2023, par Mukesh Singh ThakurI want to make a live video streaming API and send the video buffer chunk data to an HTML.
I am using rtsp URL.
The chunk logic does not work. The video only plays for 5 seconds then stops.


index.js file


const express = require('express');
const ffmpeg = require('fluent-ffmpeg');
const fs = require('fs');
const path = require('path');

const app = express();
const port = 3000;

app.get('/', (req, res) => {
 res.sendFile(__dirname + "/index.html");
});

const rtspUrl = 'rtsp://zephyr.rtsp.stream/movie?streamKey=64fd08123635440e7adc17ba31de2036';
const chunkDuration = 5; // Duration of each chunk in seconds


app.get('/video', (req, res) => {
 const outputDirectory = path.join(__dirname, 'chunks');
 if (!fs.existsSync(outputDirectory)) {
 fs.mkdirSync(outputDirectory);
 }

 const startTime = new Date().getTime();
 const outputFileName = `chunk_${startTime}.mp4`;
 const outputFilePath = path.join(outputDirectory, outputFileName);

 const command = ffmpeg(rtspUrl)
 .inputFormat('rtsp')
 // .inputOptions(['-rtsp_transport tcp'])
 .videoCodec('copy')
 .output(outputFilePath)
 .duration(chunkDuration)
 .on('start', () => {
 console.log(`start ${outputFileName}`);
 })
 .on('end', () => {
 console.log(`Chunk ${outputFileName} saved`);
 res.setHeader('Content-Type', 'video/mp4');
 res.sendFile(outputFilePath, (err) => {
 if (err) {
 console.error('Error sending file:', err);
 } else {
 fs.unlinkSync(outputFilePath); // Delete the chunk after it's sent
 }
 });
 })
 .on('error', (error) => {
 console.error('Error: ', error);
 });

 command.run();
});

app.listen(port, () => {
 console.log(`API server is running on port ${port}`);
});



index.html






 
 
 
 



 <video width="50%" controls="controls" autoplay="autoplay">
 <source src="/video" type="video/mp4"></source>
 Your browser does not support the video tag.
 </video>






package.json


{
.....
 "scripts": {
 "test": "echo \"Error: no test specified\" && exit 1",
 "start": "nodemon index.js"
 },
.....
}



-
ffmpeg - stretched pixel issue
5 juin 2023, par AdunatoContext


I'm converting a PNG sequence into a video using FFMPEG. The images are semi-transparent portraits where the background has been removed digitally.


Issue


The edge pixels of the subject are stretched all the way to the frame border, creating a fully opaque video.


Cause Analysis


The process worked fine in the previous workflow using rembg from command line however, since I started using rembg via python script using alpha_matting to obtain higher quality results, the resulting video has these issues.


The issue is present in both webm format (target) and mp4 (used for testing).


Command Used


Command used for webm is :


ffmpeg -thread_queue_size 64 -framerate 30 -i <png sequence="sequence" location="location"> -c:v libvpx -b:v 0 -crf 18 -pix_fmt yuva420p -auto-alt-ref 0 -c:a libvorbis <png output="output">
</png></png>


Throubleshooting Steps Taken


- 

- PNG Visual inspection The PNG images have a fully transparent background as desired.
- PNG Alpha Measurement I have created a couple of python scripts to look at alpha level in pixels and confirmed that there is no subtle alpha level in the background pixels
- Exported MP4 with AE Using the native AE renderer the resulting MP4/H.265 has a black background, so not showing the stretched pixel issue








Image of the Issue




Sample PNG Image from sequence



Code Context


rembg call via API using alpha_matting seems to generate a premultiplied alpha which uses non black pixels for 0 alpha pixels.


remove(input_data, alpha_matting=True, alpha_matting_foreground_threshold=250,
 alpha_matting_background_threshold=250, alpha_matting_erode_size=12)



A test using a rough RGB reset of 0-alpha pixels confirms that the images are being played with their RGB value ignoring Alpha.


def reset_alpha_pixels(img):
 # Open the image file
 # Process each pixel
 data = list(img.getdata())
 new_data = []
 for item in data:
 if item[3] == 0:
 new_data.append((0, 0, 0, 0))
 else:
 new_data.append((item[0], item[1], item[2], item[3]))
 # Replace the alpha value but keep the RGB
 

 # Update the image data
 img.putdata(new_data)

 return img



Updates


- 

- Added python context to make the question more relevant within SO scope.