
Recherche avancée
Médias (1)
-
DJ Dolores - Oslodum 2004 (includes (cc) sample of “Oslodum” by Gilberto Gil)
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (71)
-
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 (...) -
Participer à sa traduction
10 avril 2011Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
Actuellement MediaSPIP n’est disponible qu’en français et (...) -
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.
Sur d’autres sites (10443)
-
IPython.display Video giving an unplayable "empty" video when trying to run an animation from previous plots (Using ffmpeg)
17 novembre 2023, par drhodeI am working on a crater simulation project for a class and am running into a problem when it comes to creating a video. The general project is for us to simulate a surface being hit by craters until it becomes saturated. The code works, however, if I print out every graph in the simulation it would be thousands of graphs until sat is reached and then I would have to manually clip them all together. To circumvent this, I would like to take all the graphs and put them into an animation. I however, have no idea where to even start.


for reference, here is main code block :


import matplotlib.pyplot as plt
import numpy as np
import math
import os
import matplotlib.animation as ani

#I have removed the definitions and class implementation for sake of simplicity and space

ani.writers.list()
FFMpegWriter = ani.writers['ffmpeg']
writer = FFMpegWriter(fps = 10)
fig = plt.gcf()
figure = plt.figure()
fig.patch.set_alpha(1.0)

with writer.saving(figure, "sine.mp4", 150):
 while sat_counter !=1:#while loop that will introduce new crater each iteration

 new_crater = generate_crater()
 new_crater.age = sat_counter
 random_crater_list.append(new_crater)

 i =0

 while i < len(random_crater_list):#looping through the crater list and comparing new crater to all others


 old_crater = random_crater_list[i]


 overlap = square_overlap(old_crater, new_crater)#checks if old crater should be covered/removed by new crater
 

 if overlap == True:
 random_crater_list.remove(old_crater)
 i=i-1

 
 else:
 pass

 i=i+1

 sat = Saturation(random_crater_list)# checks the saturation of the graph and returns a a number between 0 and 100
 if sat > 90:
 sat_counter = 1#base condition used to break the while loop

 writer.grab_frame()
plot_craters(random_crater_list) 




Here is what the final graph looks like
saturated surface


I have tried to use the IPython.display video :



Video("sine.mp4", embed = True, width = 320, height = 320)



This however loads an empty video that is unplayable.
empty video


-
Issue with yt-dlp and FFMPEG Converting Webm to MP4 for 360 video : Unsupported channel layout "ambisonic 1"
22 janvier 2024, par William L W LI am trying to convert .webm files to mp4. These are 360 videos that have been downloaded using yt-dlp.


I have been using this command successfully, but it does not work on an M2 macbook pro. It works fine on PC.


ffmpeg -y -i "/Users/x/Movies/Tropical_Rainforest_360.webm" -c:v libx265 -preset fast -crf 21 -vf "scale=4096x4096:out_range=full" -pix_fmt yuvj420p -aspect 1:1 -movflags faststart "/Users/x/Movies/Tropical_Rainforest_360.mp4"



The error messages are as follows :


[aac @ 0x12ae1fea0] Unsupported channel layout "ambisonic 1"
[aac @ 0x12ae1fea0] Qavg: nan
[aost#0:1/aac @ 0x12ae1fc30] Error while opening encoder - maybe incorrect parameters such as bit_rate, rate, width or height.
Error while filtering: Invalid argument
[swscaler @ 0x110dd0000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x120158000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x130208000] deprecated pixel format used, make sure you did set range correctly
 Last message repeated 1 times
[out#0/mp4 @ 0x600003f8c480] Nothing was written into output file, because at least one of its streams received no packets.
frame= 0 fps=0.0 q=0.0 Lsize= 0kB time=N/A bitrate=N/A speed=N/A 
Conversion failed!




Context : I work in an educational setting which caters for vulnearble pupils. We cannot use Youtube in real time, this is mainly due to adverts or suggested videos that may trigger our pupils. Some children have mental health issues. Some children have also not been outdoors for several months/years due to medical conditions. We use 360 videos and VR to help bring the outside world inside, The YoutubeVR app is not an option since there is no way to install adblockers.


The same script above works fine on a PC virtual machine which I can remote into from my Mac.


-
Error with FFmpeg and FS in React : "ErrnoError : FS error"
23 juillet 2024, par namwanI'm working on a React application where I'm using the @ffmpeg/ffmpeg library to compress images and videos. I'm facing an issue with the virtual file system (FS) when trying to read and write files using FFmpeg. I'm getting the following error :


ErrnoError: FS error



Here's the relevant part of my code :


import React, { useState } from "react";
import { FFmpeg } from "@ffmpeg/ffmpeg";

const ffmpeg = new FFmpeg();

const fetchFile = async (filePath) => {
 const file = await ffmpeg.readFile(filePath);
 alert("hello");
 return new Uint8Array(file).buffer;
};


const Main = () => {
 const [file, setFile] = useState(null);
 const [compressedFile, setCompressedFile] = useState("");

 const loadFFmpeg = async () => {
 if (!ffmpeg.isLoaded) {
 await ffmpeg.load();
 }
 }; 

 const getFile = (event) => {
 const selectedFile = event.target.files[0];
 
 if (selectedFile) {
 setFile(selectedFile);
 }
 };

 const compressImage = (selectedFile) => {
 const img = new Image();
 img.src = URL.createObjectURL(selectedFile);
 img.onload = () => {
 const canvas = document.createElement('canvas');
 const MAX_WIDTH = 300;
 const MAX_HEIGHT = 300;
 let width = img.width;
 let height = img.height;

 if (width > height) {
 if (width > MAX_WIDTH) {
 height *= MAX_WIDTH / width;
 width = MAX_WIDTH;
 }
 } else {
 if (height > MAX_HEIGHT) {
 width *= MAX_HEIGHT / height;
 height = MAX_HEIGHT;
 }
 }

 canvas.width = width;
 canvas.height = height;
 const ctx = canvas.getContext('2d');
 ctx.drawImage(img, 0, 0, width, height);
 const dataUrl = canvas.toDataURL('image/jpeg', 1.0);
 setCompressedFile(dataUrl);
 };
 };

 const compressVideo = async (selectedFile) => {
 try {
 await loadFFmpeg();
 
 const arrayBuffer = await selectedFile.arrayBuffer();
 const fileName = selectedFile.name;
 
 await ffmpeg.writeFile(fileName, new Uint8Array(arrayBuffer));
 
 await ffmpeg.exec(
 '-i',
 fileName,
 '-vf',
 'scale=640:-1',
 '-c:a',
 'aac',
 '-strict',
 '-2',
 'output.mp4'
 );
 
 const data = await fetchFile('output.mp4');
 const compressedVideoBlob = new Blob([data], { type: 'video/mp4' });
 const compressedVideoUrl = URL.createObjectURL(compressedVideoBlob);
 setCompressedFile(compressedVideoUrl);
 
 await ffmpeg.unlink(fileName);
 await ffmpeg.unlink('output.mp4');
 
 alert('Compression successful');
 } catch (error) {
 console.error('Error:', error);
 alert('Compression failed. Please check the console for more details.');
 }
 };
 

 const handleSubmit = async (e) => {
 e.preventDefault();

 if (file) {
 const fileType = file.name.split('.').pop().toLowerCase();

 if (fileType === 'png' || fileType === 'jpg' || fileType === 'jpeg') {
 compressImage(file);
 } else if (fileType === 'mp4' || fileType === 'h264') {
 compressVideo(file);
 } else {
 alert('Please select a valid file type (png, jpg, jpeg for images or mp4, h264 for videos).');
 }
 }
 };

 const handleDownload = () => {
 if (file) {
 const downloadLink = document.createElement('a');
 downloadLink.href = compressedFile;

 const fileExtension = file.name.split('.').pop().toLowerCase();

 downloadLink.download = `compressed_file.${fileExtension}`;
 
 document.body.appendChild(downloadLink);
 downloadLink.click();
 document.body.removeChild(downloadLink);
 }
 };

 return (
 <>
 <h1>Main Page</h1>
 <form>
 <label>Upload</label>
 <input type="'file'" />
 <br /><br />
 <input type="submit" value="Compress" />
 </form>
 {compressedFile && (
 <>
 <h2>Compressed File Preview</h2>
 {file && file.name && ( 
 file.name.split('.').pop().toLowerCase() === 'mp4' || file.name.split('.').pop().toLowerCase() === 'h264' ? (
 <video width="300" controls="controls">
 <source src="{compressedFile}" type="video/mp4"></source>
 Your browser does not support the video tag.
 </video>
 ) : (
 <img src="http://stackoverflow.com/feeds/tag/{compressedFile}" alt="Compressed file preview" style='max-width: 300px; max-height: 300px' />
 )
 )}
 <br /><br />
 <button>Download Compressed File</button>
 >
 )}
 >
 );
};

export default Main;



I'm using ffmpeg.readFile and ffmpeg.writeFile to read and write files to FFmpeg's virtual file system. I've also tried using ffmpeg.read and ffmpeg.write but still encounter the same issue.


Could someone please help me understand what might be causing this FS error and how to resolve it ?