Recherche avancée

Médias (1)

Mot : - Tags -/école

Autres articles (47)

  • Installation en mode ferme

    4 février 2011, par

    Le mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
    C’est la méthode que nous utilisons sur cette même plateforme.
    L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
    Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...)

  • La sauvegarde automatique de canaux SPIP

    1er avril 2010, par

    Dans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
    Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

Sur d’autres sites (6081)

  • Fragmented MP4 has wrong duration in Windows Media Player

    3 février 2020, par Expressingx

    I’m streaming video from a camera to a file using ffmpeg. The case to use Fragmented MP4 is that there can be sudden power off and lose the video. I’ve configured the fragments to be at least 30 secs and this is how much the Windows Media Player reports for the duration even if its 2 hours long, after that it keeps streaming the video but is not seekable after the 30th second. How can be that fixed ?

    ffmpeg -c copy -movflags frag_keyframe+separate_moof+omit_tfhd_offset -min_frag_duration 30000000 -bsf:a aac_adtstoasc \ out.mp4

    If I use -movflags frag_keyframe+empty_moov then the video is not seekable at all and no duration reported.

    I aim for seekable video with correct duration both on VLC/Windows Media Player

    Version of ffmpeg : 3.3.4

  • Error while running ffmpeg

    28 mars 2017, par user4543816

    I’m trying to convert a video file to images :
    ffmpeg -i XXXX.mp4 -r 1/1 $XX%03d.bmp

    and I get the following error

    video:121501kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead : unknown

    Any help will be appreciated

  • SciPy and NumPy FFT calculation for multiple files failure

    28 mars 2016, par Noilladar

    The task is to convert the bunch of audio files (of different formats) from stereo to mono then find FFT for each one and save it to the .txt file
    The conversion is successfully made by calling ffmpeg as subprocess. Stereo files are deleted after mono files. The problem appears during the fft calculation : some files are done and the others are suddenly dismissed.
    Can it be thу library bug or I had omitted something about objects. It seems like the process cannot allocate or distribute memory or so. I appreciate any help ! Here is the entire code :

    # coding: cp1251
    import os
    import os.path
    import glob
    import subprocess
    import scipy
    from scipy.io.wavfile import read
    # from scipy.fftpack import fft (tried first with scipy then with numpy)
    from numpy.fft import fft


    TrackList = []
    ReadyNames = []

    FrameSize = 1024
    CurOffset = 0
    AudioLen = 0
    AudioFile = None
    InputData = None
    SampleRate = 44100.0

    SpecArray = []
    Freqs = []

    # ------ file processing and job organisation

    def NextAudioFrame():
       global CurOffset, AudioLen, AudioFile, FrameSize
       if (CurOffset + FrameSize) > AudioLen:
           r = None
       else:
           r = AudioFile[CurOffset:(CurOffset + FrameSize)]
           CurOffset += FrameSize
       return r

    def PrepareFrame(frm):
       a2 = range(FrameSize)
       for i in range(FrameSize):
           a2[i] = frm[i] / 32768.0
       mags = abs(fft(a2))
       return mags

    def SaveSpectrum(n):
       f = open(n + ".txt", "w")
       for i in range(FrameSize / 2):
           f.write(str(Freqs[i]) + "   " + str(SpecArray[i]) + "\n")
       f.close()


    def ReadTrackList():
       global TrackList, ReadyNames
       q = os.listdir(".")
       for i in q:
           t = os.path.splitext(i)
           if t[1] == ".txt":
               ReadyNames.append(t[0])
           elif t[1] != ".py":
               TrackList.append(i)


    def GenJustFileName(fn):
       q = len(fn) - 1
       z = ""
       while (q >= 0) and (z != "\\"):
           z = fn[q]
           q -= 1
       if (q >= 0) and (z == "\\"):
           t = fn[(q + 2):]
       else:
           t = fn
       w = t.find(".")
       return t[:w]


    def CheckFile(fn):
       r = True
       t = GenJustFileName(fn)
       for i in ReadyNames:
           if t == i:
               r = False
       return r

    def MakeFreqTable():
       global Freqs
       Freqs = []
       for i in range(FrameSize / 2):
           Freqs.append(i / (FrameSize / SampleRate))

    def MakeMonoMix(fn):
       mf = (os.path.splitext(fn)[0] + "_mono.wav")
       fm = subprocess.Popen(["ffmpeg", "-i", fn, "-ac", "1", "-ar", "44100", "-acodec", "pcm_s16le", mf])
       fm.wait()


    def GetSpectrumFromCurFile():
       global InputData, SampleRate, AudioFile, AudioLen, SpecArray, FrameSize, TempWavFile
       InputData = read(TempWavFile)
       SampleRate = InputData[0] * 1.0
       AudioFile = InputData[1]
       AudioLen = len(AudioFile)
       CurOffset = 0

       Cmpl = []
       SpecArray = range(FrameSize)
       for i in range(FrameSize):
           SpecArray[i] = 0.0
           Cmpl.append(0.0)

       frm_cnt = 0
       CurFrame = []

       while CurFrame != None:
           CurFrame = NextAudioFrame()
           if CurFrame != None:
               q = PrepareFrame(CurFrame)
               frm_cnt += 1
               for i in range(FrameSize):
                   Cmpl[i] += q[i]

       if frm_cnt > 0:
           for i in range(len(Cmpl)):
               SpecArray[i] = Cmpl[i] / frm_cnt
       print "Finished! Total frames processed " + str(frm_cnt) + "\n"
       return frm_cnt


    def ProcessFile1(fn):
       q = CheckFile(fn)
       if q == False:
           print "File not exists or already processed\n"
       else:
           MakeMonoMix(fn)
           print "\nProcessin file: " + fn + "\n"
           os.remove(fn)


    def ProcessFile2(fn):
       global TempWavFile
       print "\nProcessing file: " + fn + "\n"
       z = GenJustFileName(fn)
       TempWavFile = fn
       f = GetSpectrumFromCurFile()
       if f > 0:
           ReadyNames.append(z)
           SaveSpectrum(z)
       os.remove(TempWavFile)          


    def InitJob():
       ReadTrackList()
       MakeFreqTable()

    InitJob()
    for i in TrackList:
       print GenJustFileName(i) + "\n"
       ProcessFile1(i)


    wlist = glob.glob("*.wav")

    for i in wlist:
       print GenJustFileName(i) + "\n"
       ProcessFile2(i)