Recherche avancée

Médias (1)

Mot : - Tags -/stallman

Autres articles (89)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie 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, par

    Dixit 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, par

    Deux 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 Jeff

    I 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 the ffmpeg command :

    


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

    


    I want to add 2 changes to this :

    


      

    1. 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 the for f in command.

      


    2. 


    3. 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 like GH0[123]488.MP4 would work to just get the first few. But when I change it to be more flexible like GH0[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 *.

      


    4. 


    


    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 nottAbott

    I 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 Nun

    I 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