
Recherche avancée
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 ;
-
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 -
Supporting all media types
13 avril 2011, parUnlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)
Sur d’autres sites (9760)
-
Mux ts segments to fragmented mp4 in realtime
10 avril 2021, par bsackI have an HLS stream which plays in the browser. What I want to do is have a URL like
/stream.mp4
that plays the livestream back as a fragmented mp4 from the current point in time. This way you could download the stream as a single file and it would work without any js dependencies.

The method I thought of is :


- 

- send an mp4 header
- wait for a new segment
- convert the segment into an mp4 fragment with
ffmpeg
- send the mp4 fragment
- go to 2.












(I know you can concatenate
.ts
segments but they don't play in Firefox.)

This answer describes how to create a fragmented mp4 when you have all the segments at hand (tl ;dr use
-movflags frag_keyframe+emptymoov
). But I want to do this on the fly so each new HLS segment is converted to an mp4 fragment as soon as it's created.

I think this is similar to what DASH does natively, where any chunk
chunk-$n.m4s
can be appended toinit.m4s
and it'll be a proper fragmented mp4. But can this be done without using DASH ?

How can I transmux a ts segment into an mp4 fragment ?


Edit : I found a way of doing what I wanted, but not through transmuxing mpegts segments to fmp4. It turns out that later versions of HLS do support fragmented mp4 (like DASH does), and FFmpeg provides the
-hls_segment_type fmp4
option for this.

-
upload and stream ffmpeg stream chunk and mpd file in s3
29 juin 2024, par Kamruzzaman Rabeeni want to make ann web app where i can upload a video. After uploading video its should be compress by ffmpeg after that i want to keep the data on aws S3.


I can compress by ffmpeg. but i have no idea which file i should keep in s3 because after compress its create many chunk file and one mpd xml file.


Also i want to stream the video from mpd file after fetching data from s3.
here is my upload function code.

const videoPath = req.file.path; const outputDir = path.join(__dirname, 'dash'); const uniqueId = uuidv4(); const outputFilePath = path.join(outputDir,
$uniqueId_stream.mpd); const bucketName = process.env.S3_BUCKET_NAME; const s3Key =
dash/$uniqueId_stream.mpd` ;

// Ensure the output directory exists
if (!fs.existsSync(outputDir)) {
 fs.mkdirSync(outputDir, { recursive: true });
}

ffmpeg(videoPath)
 .outputOptions([
 '-profile:v main',
 '-use_template 1',
 '-use_timeline 1',
 '-b:v 1000k',
 '-b:a 128k',
 '-f dash'
 ])
 .on('end', async () => {
 console.log('DASH file created successfully');
 try {
 const s3Url = await uploadToS3(outputFilePath, bucketName, s3Key);
 res.status(200).json({ message: 'Video uploaded and DASH file created', url: s3Url });
 } catch (err) {
 console.error('Error uploading to S3: ', err);
 res.status(500).json({ message: 'Error uploading to S3', error: err.message });
 }
 })
 .on('error', (err) => {
 console.error('Error processing video: ', err);
 res.status(500).json({ message: 'Error processing video', error: err.message });
 })
 .save(outputFilePath);`

`const uploadToS3 = (filePath, bucketName, key) => {
return new Promise((resolve, reject) => {
 fs.readFile(filePath, (err, data) => {
 if (err) return reject(err);

 const params = {
 Bucket: bucketName,
 Key: key,
 Body: data,
 ContentType: 'application/dash+xml'
 };

 s3.upload(params, (err, data) => {
 if (err) return reject(err);
 resolve(data.Location);
 });
 });
});



;`


i have tried this version of code.


now i want to know what is the best to way to keep data in s3 for compress video after ffmpeg.


-
avformat/matroskaenc : Don't waste bytes on ChapterAtoms length fields
14 janvier 2022, par Andreas Rheinhardt