
Recherche avancée
Médias (2)
-
Core Media Video
4 avril 2013, par
Mis à jour : Juin 2013
Langue : français
Type : Video
-
Video d’abeille en portrait
14 mai 2011, par
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (76)
-
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...) -
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 (...) -
Menus personnalisés
14 novembre 2010, parMediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
Menus créés à l’initialisation du site
Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)
Sur d’autres sites (8804)
-
Overlay a video and an image over a background video and shift that background video's position to the right
4 août 2023, par sybrI'm currently working on a way to improve my production process for the videos that I'm making. I usually edit videos using two folders full of clips. Being able to automate putting these together in Premiere would save me a lot of time.


I'm using the FFMpegCORE C# library, as well as Xabe.FFMpeg to achieve what I'm trying to do, and I've currently reached the point of creating two separate videos using the clips I mentioned earlier.


The final step that I need to solve is to overlay the overlay video (overlay.mp4) over the background video (background.mp4), add an overlay image to add a clean divider (overlay.png) between the edges of the videos, and to somehow shift the position of the background video 33% to the right (background.mp4).


This is the script I've come up with so far :


ffmpeg -i overlay.mp4 -i background.mp4 -i overlay.png -filter_complex \ 
"[1:v]scale=608:1080[a]; [0:v]pad=1920:1080[b]; [b][a]overlay[out]; \
[out][2:v]overlay[out]; [0][1]amix[a];" \
-map [out] -map [a] -c:v libx264 -crf 30 -pix_fmt yuv420p -y output.mp4



Is there a way to shift the background video to the right ? Or should I manually edit the video files ?


Would love some help here, also eager to learn more about FFmpeg, so some explanation would be highly appreciated !


Edit :


Just found the solution, padding the background video for 33% and then cropping the final out back to 1920x1080 seemed to do the trick !


ffmpeg -i overlay.mp4 -i background.mp4 -i overlay.png -filter_complex "[1:v]scale=608:1080[a]; [0:v]pad=2560:0:x=1920:y=1080[b]; [b][a]overlay[out]; [out][2:v]overlay[out]; [out]crop=1920:1080:0:0[out]; [0][1]amix[a];" -map [out] -map [a] -c:v libx264 -crf 30 -pix_fmt yuv420p -y output.mp4



-
Fluent ffmpeg not running synchronously
14 mai 2022, par sciencaholicI am writing a program where I need to process a video multiple times using ffmpeg. The ffmpeg codes (below) are inside a 'then' statement of a promise.



ffmpeg(path)
 .size('640x?')
 .aspect('1:1')
 .autopad('#682BAB')
 .saveToFile(`${userDirPath}/11-${userFileName}`)
 .on('end', () => {
 ffmpeg()
 .input('test-11-start.mp4')
 .mergeAdd(`${userDirPath}/11-${userFileName}`)
 .mergeAdd('test-11-end.mp4')
 .mergeToFile(`${userDirPath}/11-final-${userFileName}`, 'temp/')
 .on('end', () => console.log('FFmpeg done!'));
 });




There is another ffmpeg function after this (same, but with a different aspect ratio) and then, a 'then' statement with some other functions.



The problem is that this ffmpeg function runs asynchronously, and the next statements (which use the resulting file of ffmpeg func) are executed before it finishes executing and so I want it to run synchronously. I've tried async await (below) but it still runs asynchronously. What is wrong with code ?



async function ffmpegMerge() {
 try {
 await ffmpeg(path)
 .size('640x?')
 .aspect('1:1')
 .autopad('#682BAB')
 .saveToFile(`${userDirPath}/11-${userFileName}`)
 .on('end', () => {
 ffmpeg()
 .input(`test-11-start.mp4`)
 .mergeAdd(`${userDirPath}/11-${userFileName}`)
 .mergeAdd(`test-11-end.mp4`)
 .mergeToFile(`${userDirPath}/11-final-${userFileName}.mp4`, 'temp/')
 .on('end', () => console.log('FFmpeg done!'));
 })
 }
 catch (err) {
 return Promise.reject(new Error(err));
 }
}



-
ffmpeg kit flutter IOS No such filter : 'drawtext' Error
6 août 2023, par Patel MilanI am using ffmpeg_kit_flutter and apply drawtext filter on video but i am getting errors
No such filter: 'drawtext'


input video link is input.mp4


This command it working


ffmpeg -y -i input.mp4 -filter_complex '[0]scale=540:-1[s];[s]drawtext=text='your_text_here':fontsize=24:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2' output.mp4



code sample is bellow


/// Create Video With Text
Future<void> createVideoWithText() async {
 final file = File('${(await getTemporaryDirectory()).path}/output.mp4');
 String outPut = file.path;

 String command = "-y -i $inputFilePath -filter_complex '[0]scale=540:-1[s];[s]drawtext=text='MY_TEXT':fontsize=24:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2' $outPut";

 FFmpegKit.executeAsync(
 command,
 (session) async {
 final returnCode = await session.getReturnCode();

 if (ReturnCode.isSuccess(returnCode)) {
print('Success full add text on video');
 }else{print('Error to adding text on video');}
 },
 );
}
</void>