
Recherche avancée
Médias (1)
-
Richard Stallman et le logiciel libre
19 octobre 2011, par
Mis à jour : Mai 2013
Langue : français
Type : Texte
Autres articles (89)
-
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 (...) -
XMP PHP
13 mai 2011, parDixit Wikipedia, XMP signifie :
Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...) -
Déploiements possibles
31 janvier 2010, parDeux types de déploiements sont envisageable dépendant de deux aspects : La méthode d’installation envisagée (en standalone ou en ferme) ; Le nombre d’encodages journaliers et la fréquentation envisagés ;
L’encodage de vidéos est un processus lourd consommant énormément de ressources système (CPU et RAM), il est nécessaire de prendre tout cela en considération. Ce système n’est donc possible que sur un ou plusieurs serveurs dédiés.
Version mono serveur
La version mono serveur consiste à n’utiliser qu’une (...)
Sur d’autres sites (10807)
-
Mac terminal command to list files and sort by date to use in ffmpeg
22 septembre 2020, par JeffI am using a gopro to film a bunch of videos. I want to then take those videos directly from the SD card folder and concatenate them into a single video (bypass an editor) by using FFMPEG.


I'm currently able to stitch together "chaptered" videos with the following example command on my Mac (10.13) :


ffmpeg -f concat -safe 0 -i <(for f in /sdcardfolder/100GOPRO/GH*488.MP4; do echo "file '$f'"; done) -c copy /folder/video.mp4


The reason for this is that the ffmpeg command requires a text file that looks like this :




file '/folder/GH016992.MP4'


file '/folder/GH036990.MP4'


...



The real command is this, which generates the list of files in the right format with
file
in front of each one and can be embedded into theffmpeg
command :

for f in /Volumes/GoPro8/DCIM/100GOPRO/GH0*71*.MP4; do echo "file '$f'"; done


I want to add 2 changes to this :


- 

-
List the files in date order (ascending) : I want the list of files to be in date order. But I can't figure out how to add a
-sort
or something to thefor f in
command.

-
Allow a more robust set of file matching/filtering : Right now I can add basic regex like
GH*488.MP4
or, with chapters which increments the first number, something likeGH0[123]488.MP4
would work to just get the first few. But when I change it to be more flexible likeGH0[0-9]71[0-9][0-9].MP4
- which would be necessary to match all files that were recorded yesterday, but nothing before then, the command doesn't like this regex. It seems to only accept a*
.







I looked at a few examples like https://opensource.com/article/19/6/how-write-loop-bash but there wasn't much more than just listing files.


This boils down to a terminal command and isn't really related to FFMPEG but I hope it's helpful context.


I imagined it would be something like this, but this definitely doesn't work :


for f in (find /Volumes/GoPro8/DCIM/100GOPRO/GH0[0-9]71[0-9][0-9].MP4 -type f | sort); do echo "file '$f'"; done


I'd appreciate any help ! Thanks !


Update


It looks like sorting isn't easy with Mac tools so I gave up and wrote a much simpler Ruby script that could execute everything for me. This is not really an answer to my question above but it is a solution.


Here I can easily write the text file necessary for ffmpeg and I can also filter files with a regex on the name, filter for a particular date, and size. Then, via the script, simply execute the ffmpeg command with args to concat files. I can also have it immediately resample the file to compress it (gopro videos are giant and I'm ok with a much lower bitrate if I want to save raw footage).


I got lucky with this
Dir.entries
in Ruby - it seems to automatically sort by date ? I don't know how to sort it otherwise.

PATH = '/Volumes/GoPro8/DCIM/100GOPRO/'
NEW_FILENAME = '/folder/new-file.mp4'
video_list = '/folder/ffmpeg-list.txt'

# create the text file
File.delete(video_list) if File.exist?(video_list)
i = 1
Dir.entries(PATH).each do |f|
 d = File.mtime(PATH + f)
 size = File.size(PATH + f)
 if f.match(/GH0.*.MP4/) && d.to_s.match(/2020-07-30/) && size.to_i < 1000000000
 puts "#{i}\t#{f}\t#{d}\t#{size}"
 File.write(video_list, "file #{PATH + f}\n", mode: "a")
 i= i+1
 end
end

command = "ffmpeg -f concat -safe 0 -i #{video_list} -c copy #{NEW_FILENAME}"

puts "executing concatenate..."
puts command
system(command)



-
-
How do you run a ffmpeg command in Java, in MacOS, using a ProcessBuilder
5 août 2020, par nottAbottI am writing a program in Java that uses ffmpeg to "snip" a video into several pieces and the stitch them back together again. I have everything working relatively smoothly in Windows, but I cannot get ffmpeg to work in Mac, or in Linux for that matter. I'm focusing on mac right now though. I thought that it might be a permissions problem, but when I run it with sudo I get an error that says (after typing in the password :


sudo: ffmpeg: command not found



when I run it without sudo I get :


java.io.IOException: Cannot run program "ffmpeg": error=2, No such file or directory



I think that it might be because the ffmpeg package, on the Mac machine, was downloaded with homebrew, and ffmpeg is stored in /usr/local/Cellar/ffmpeg instead of the default folder, wherever it may be. That may not be the problem though, because I deleted ffmpeg and re-downloaded it with homebrew. It may have been in its defaulter folder in my first tests as well. It would be great to figure this out. Most of my family uses Mac (not me) and I really want to share my work with them. That is why I chose to code this in Java. Oh, and I did try using the directory to the binary in the command. Here's the code :


//snips out all the clips from the main video
 public void snip() throws IOException, InterruptedException {
 
 for(int i = 0; i < snippets.size(); i++) {
 //ffmpeg -i 20sec.mp4 -ss 0:0:1 -to 0:0:5 -c copy foobar.mp4
 String newFile = "foobar" + String.valueOf(i) + ".mp4";
 
 //THIS WORKS
 if(OS.isWindows()) {
 ProcessBuilder processBuilder = new ProcessBuilder("ffmpeg", "-i", videoName, "-ss",
 snippets.get(i).getStartTime(), "-to", snippets.get(i).getEndTime(), newFile);
 
 Process process = processBuilder.inheritIO().start();
 process.waitFor();
 System.out.println("Win Snip " + i + "\n");
 }
 
 else if (OS.isMac()) {
 //FFMPEG LOCATION: /usr/local/Cellar/ffmpeg
 //THE ERROR: sudo: ffmpeg: command not found
 //ERROR W/OUT SUDO: java.io.IOException: Cannot run program "ffmpeg": error=2, No such file or directory
 ProcessBuilder processBuilder = new ProcessBuilder("sudo", "-S", "ffmpeg", "-f", videoName, "-ss",
 snippets.get(i).getStartTime(), "-to", snippets.get(i).getEndTime(), newFile);
 
 Process process = processBuilder.inheritIO().start();
 process.waitFor();
 System.out.println("Mac Snip " + i + "\n");
 }
 
 else if (OS.isUnix()) {
 System.out.println("Your operating system is not supported");
 //TODO
 //need to figure out if deb/red hat/whatever are different
 }
 
 else if (OS.isSolaris()) {
 System.out.println("Your operating system is not supported yet");
 //TODO probably won't do
 }
 
 else {
 System.out.println("Your operating system is not supported");
 }
 //add to the list of files to be concat later
 filesToStitch.add(newFile);
 filesToDelete.add(newFile);
 
 }
 //System.out.println(stitchFiles);
 }



-
Python code mutes whole video instead of sliding a song. What shall I do ?
16 juillet 2023, par Armed NunI am trying to separate a song into 4 parts and slide the parts in random parts of a video. The problem with my code is that the final output video is muted. I want to play parts of the song at random intervals and while the song is playing the original video shall be muted. Thanks to everyone who helps


import random
from moviepy.editor import *

def split_audio_into_parts(mp3_path, num_parts):
 audio = AudioFileClip(mp3_path)
 duration = audio.duration
 part_duration = duration / num_parts

 parts = []
 for i in range(num_parts):
 start_time = i * part_duration
 end_time = start_time + part_duration if i < num_parts - 1 else duration
 part = audio.subclip(start_time, end_time)
 parts.append(part)

 return parts

def split_video_into_segments(video_path, num_segments):
 video = VideoFileClip(video_path)
 duration = video.duration
 segment_duration = duration / num_segments

 segments = []
 for i in range(num_segments):
 start_time = i * segment_duration
 end_time = start_time + segment_duration if i < num_segments - 1 else duration
 segment = video.subclip(start_time, end_time)
 segments.append(segment)

 return segments

def insert_audio_into_segments(segments, audio_parts):
 modified_segments = []
 for segment, audio_part in zip(segments, audio_parts):
 audio_part = audio_part.volumex(0) # Mute the audio part
 modified_segment = segment.set_audio(audio_part)
 modified_segments.append(modified_segment)

 return modified_segments

def combine_segments(segments):
 final_video = concatenate_videoclips(segments)
 return final_video

# Example usage
mp3_file_path = "C:/Users/Kris/PycharmProjects/videoeditingscript124234/DENKATA - Podvodnica Demo (1).mp3"
video_file_path = "C:/Users/Kris/PycharmProjects/videoeditingscript124234/family.guy.s21e13.1080p.web.h264-cakes[eztv.re].mkv"
num_parts = 4

audio_parts = split_audio_into_parts(mp3_file_path, num_parts)
segments = split_video_into_segments(video_file_path, num_parts)
segments = insert_audio_into_segments(segments, audio_parts)
final_video = combine_segments(segments)
final_video.write_videofile("output.mp4", codec="libx264", audio_codec="aac")



I tried entering most stuff into chatGPT and asking questions around forums but without sucess, so lets hope I can see my solution here