
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (47)
-
Installation en mode ferme
4 février 2011, parLe 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, parDans 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, parLes 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 ExpressingxI’m streaming video from a camera to a file using
ffmpeg
. The case to useFragmented 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 theWindows 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 user4543816I’m trying to convert a video file to images :
ffmpeg -i XXXX.mp4 -r 1/1 $XX%03d.bmpand 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 NoilladarThe 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)