
Recherche avancée
Autres articles (64)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
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 -
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 (...)
Sur d’autres sites (13170)
-
I want to replace audio in a moflex file but ffmpeg says "Unable to find a suitable output format for 'CloudyWithAChanceOfMeatballs(3D).moflex'"
26 septembre 2022, par Костянтин МараWhat i do :


ffmpeg -i CloudyWithAChanceOfMeatballs(3D)_400x240_1800kbps_23.976fps_2pass.moflex -i Cloudy.With.A.Chance.Of.Meatballs.2009.1080p.mp3 -c:v copy -c:a fastaudio -map 0:v:0 -map 1:a:0 -o CloudyWithAChanceOfMeatballs(3D).moflex



and what i get :


Input #0, moflex, from 'CloudyWithAChanceOfMeatballs(3D)_400x240_1800kbps_23.976fps_2pass.moflex':
 Duration: N/A, bitrate: N/A
 Stream #0:0: Video: mobiclip, yuv420p, 400x240, 23.98 fps, 23.98 tbr, 23.98 tbn
 Stream #0:1: Data: none
 Stream #0:2: Audio: fastaudio, 48000 Hz, stereo, fltp
Input #1, mp3, from 'Cloudy.With.A.Chance.Of.Meatballs.2009.1080p.mp3':
 Metadata:
 title : --SCHUMAHER--
 encoder : Lavf59.24.100
 Duration: 01:29:50.71, start: 0.023021, bitrate: 128 kb/s
 Stream #1:0: Audio: mp3, 48000 Hz, stereo, fltp, 128 kb/s
 Metadata:
 encoder : Lavc59.33
[NULL @ 000002651fbaf540] Unable to find a suitable output format for 'CloudyWithAChanceOfMeatballs(3D).moflex'
CloudyWithAChanceOfMeatballs(3D).moflex: Invalid argument



I'm not sure what could be the problem, before this i tried converting it to mp4 and then do something but because the video was in 3d, ffmpeg sort of shuffled those left and right frames into one, 2x long video. Help on this would also be welcome.


-
ffmpeg crashes with "Internal bug", "Failed to inject frame into filter network" while trying to convert PNG files into an animated gif using filters
12 août 2022, par EigentlichOraclerffmpeg version : ffmpeg version 4.2.7-0ubuntu0.1


Kernel : 5.4.0-122-lowlatency #138-Ubuntu SMP PREEMPT x86_64 x86_64 x86_64 GNU/Linux


PNG-Images : 996 pieces, all equal in size : 1000x50


Then trying to build palette using palettegen :


export filters="scale=1000:-1:flags=lanczos"
export palette=./stripes_palette.png
ffmpeg -v warning -i ./palette_source_stripes.png -vf "$filters,palettegen=stats_mode=diff" -y $palette
[Parsed_palettegen_1 @ 0x55f0eea30e00] Dupped color: FF63000D



Palette file has been created, looks good so far. Then I tried to convert all 996 PNG files into one single (space optimized) animated GIF file using paletteuse :


ffmpeg -v warning -framerate 5 -thread_queue_size 2048 -i ./tmp/temp.%04d.png -i $palette -lavfi "$filters,paletteuse=dither=bayer:bayer_scale=5:diff_mode=rectangle" -r 5 -loop -1 -y testanim.gif
Error while filtering: Internal bug, should not have happened
Failed to inject frame into filter network: Internal bug, should not have happened
Error while processing the decoded data for stream #0:0



The reason for "-framerate 5" for the input and "-r 5" for the output is : I wanted the animated GIF to use a determined time for running through animation. It already had worked out without using complex filtering, but the results were huge GIF files which are hard to handle.
But even when I avoid both framerate parameters, still the same error message occurs.


Should I look deeper into the "Dupped color" which has been mentioned ? Did anybody encounter a similar issue using ffmpeg ?
I'm not used to deal with filters (nor "complex filters") in ffmpeg, I'm very new at this, but I've found no tips regarding an ffmpeg crash like I've right here.


------------------------------- EDIT 2022-08-12/1 ---------------------


Same error occurs with current stable version
ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers


------------------------------- EDIT 2022-08-12/2 ---------------------


Found workaround, see answer below


-
Can't upload folder with large amount of files to google storage. I using "@ffmpeg-installer/ffmpeg" and @google-cloud/storage
20 juillet 2022, par DmytroI upload file to google storage using "@ffmpeg-installer/ffmpeg" and @google-cloud/storage in my node.js App.
Step 1. file uploading to fs is in child processes - one process for each type of resolution (totaly six).
step 2. encription (converting to stream)
step 3. upload to google storage


I use "Upload a directory to a bucket" in order to send the video from the client to the Google Cloud Storage bucket.


This way is working fine only with small video.


for example when I upload video with duration one hour it split on chunk and totally I get more three thousands files. But the problem occurs when there are more than 1500 files


So actually i upload folder with large amount of files, but not all of this files are uploaded to cloud.


maybe someone had the similar problem and helps fix it.




const uploadFolder = async (bucketName, directoryPath, socketInstance) => {
 try {
 let dirCtr = 1;
 let itemCtr = 0;
 const fileList = [];

 const onComplete = async () => {
 const folderName = nanoid(46);

 await Promise.all(
 fileList.map(filePath => {
 const fileName = path.relative(directoryPath, filePath);
 const destination = `${ folderName }/${ fileName }`;

 return storage
 .bucket(bucketName)
 .upload(filePath, { destination })
 .then(
 uploadResp => ({ fileName: destination, status: uploadResp[0] }),
 err => ({ fileName: destination, response: err })
 );
 })
 );

 if (socketInstance) socketInstance.emit('uploadProgress', {
 message: `Added files to Google bucket`,
 last: false,
 part: false
 });

 return folderName;
 };

 const getFiles = async directory => {
 const items = await fs.readdir(directory);
 dirCtr--;
 itemCtr += items.length;
 for(const item of items) {
 const fullPath = path.join(directory, item);
 const stat = await fs.stat(fullPath);
 itemCtr--;
 if (stat.isFile()) {
 fileList.push(fullPath);
 } else if (stat.isDirectory()) {
 dirCtr++;
 await getFiles(fullPath);
 }
 }
 }

 await getFiles(directoryPath);

 return onComplete();
 } catch (e) {
 log.error(e.message);
 throw new Error('Can\'t store folder.');
 }
 };