
Recherche avancée
Médias (91)
-
Géodiversité
9 septembre 2011, par ,
Mis à jour : Août 2018
Langue : français
Type : Texte
-
USGS Real-time Earthquakes
8 septembre 2011, par
Mis à jour : Septembre 2011
Langue : français
Type : Texte
-
SWFUpload Process
6 septembre 2011, par
Mis à jour : Septembre 2011
Langue : français
Type : Texte
-
La conservation du net art au musée. Les stratégies à l’œuvre
26 mai 2011
Mis à jour : Juillet 2013
Langue : français
Type : Texte
-
Podcasting Legal guide
16 mai 2011, par
Mis à jour : Mai 2011
Langue : English
Type : Texte
-
Creativecommons informational flyer
16 mai 2011, par
Mis à jour : Juillet 2013
Langue : English
Type : Texte
Autres articles (18)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...) -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (4406)
-
Extracted .wav file from .mp4 video with ffmpeg only has half of the duration
16 mars 2021, par TheSprinterI've been using ffmpeg to extract .wav files from .mp4 videos to then generate waveforms and spectrograms for it, but I stumbled upon a file for which ffmpeg does not generate the full audio file. The video duration is 25:25 (25 minutes and 25 seconds), but the .wav file is 12:28 (12 minutes and 28 seconds).


This is what I've been doing :


C:\Users\<user>> ffmpeg -i video.mp4 -ab 160k -ac 1 -ar 44100 -vn audio.wav
</user>


I tried with
-ac 2
only to see if I get something different, but the result is the same. In fact, I can't generate the plots I need with a stereo audio file.

This is what I get in the terminal when I run the command :


C:\Users\<user>>ffmpeg -i video.mp4 -ab 160k -ac 1 -ar 44100 -vn audio.wav
ffmpeg version 4.3 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 9.3.1 (GCC) 20200621
 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libgsm --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
 libavutil 56. 51.100 / 56. 51.100
 libavcodec 58. 91.100 / 58. 91.100
 libavformat 58. 45.100 / 58. 45.100
 libavdevice 58. 10.100 / 58. 10.100
 libavfilter 7. 85.100 / 7. 85.100
 libswscale 5. 7.100 / 5. 7.100
 libswresample 3. 7.100 / 3. 7.100
 libpostproc 55. 7.100 / 55. 7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'audio.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: mp42mp41
 creation_time : 2021-03-09T05:00:00.000000Z
 Duration: 00:25:25.29, start: 0.000000, bitrate: 2308 kb/s
 Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720, 4410 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
 Metadata:
 creation_time : 2021-03-09T05:00:00.000000Z
 handler_name : ?Mainconcept Video Media Handler
 encoder : AVC Coding
 Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 253 kb/s (default)
 Metadata:
 creation_time : 2021-03-09T05:00:00.000000Z
 handler_name : #Mainconcept MP4 Sound Media Handler
Stream mapping:
 Stream #0:1 -> #0:0 (aac (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, wav, to 'audio.wav':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: mp42mp41
 ISFT : Lavf58.45.100
 Stream #0:0(eng): Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, mono, s16, 705 kb/s (default)
 Metadata:
 creation_time : 2021-03-09T05:00:00.000000Z
 handler_name : #Mainconcept MP4 Sound Media Handler
 encoder : Lavc58.91.100 pcm_s16le
size= 64463kB time=00:12:28.41 bitrate= 705.6kbits/s speed= 156x
video:0kB audio:64463kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000118%
</user>


If this information on the video is not enough to troubleshoot, the video says the following (when it starts, for the first few seconds) :



EP TRT (23.976): 01:24:53:18
EP TRT (29.976): 01:24:55:06

AUDIO LAYOUT

Channel 1: Left Front (L)
Channel 2: Right Front (R)
Channel 3: Center (C)
Channel 4: Low Frequency/Effects (LFE)
Channel 5: Left Surround (Ls)
Channel 6: Right Surround (Rs)
Channel 7: Mono Mix (L)
Channel 8: Mono Mix (R)



This is for TV, that's why you see that longer duration. I don't know if all this is relevant, actually.


Some additional info


Something curious is that I'm doing this for manual tests, but I'm actually creating an app with python and, for that, I'm using
python-ffmpeg
module, and I with that I'm getting the correct .wav file (with the correct duration). The python lines for this are the following :

(
 ffmpeg
 .input(
 
 )
 .output(
 ,
 audio_bitrate=316000,
 ac=1,
 ar=48000
 )
 .run()
)



-
Background transparency lost on new machine using matplotlib and ffmpeg
23 octobre 2023, par Jan TurowskiI am creating animated physics graphs with a transparent background for later use in a NLE. On my old machine at work they display and render with background transparency just fine. The exact same code however loses background transparency in the ffmpeg render on both my Linux and my Windows machine at home. The animations are displayed just fine on all machines.


As I first thought it was a Linux issue, I tried to run the code on my Windows machine expecting it to work again. Unfortunately it did not.


Reduced code :


import numpy as np
import matplotlib.pylab as plt
from matplotlib.animation import FuncAnimation
import matplotlib.animation as animation
from matplotlib.pyplot import figure
from matplotlib import style
import locale
from matplotlib.ticker import (MultipleLocator, AutoMinorLocator)
# Set to German locale to get comma decimal separater
locale.setlocale(locale.LC_NUMERIC, "de_DE")
# Tell matplotlib to use the locale we set above
plt.rcParams['axes.formatter.use_locale'] = True

# plt.clf()
# plt.rcdefaults()

# Style und Font definieren

style.use('dark_background')

# Pfeile erstellen
def arrowed_spines(fig, ax):

 xmin, xmax = ax.get_xlim()
 ymin, ymax = ax.get_ylim()

 # removing the default axis on all sides:
 for side in ['bottom','right','top','left']:
 ax.spines[side].set_visible(False)

 # removing the axis ticks
 # plt.xticks([]) # labels
 # plt.yticks([])
 # ax.xaxis.set_ticks_position('none') # tick markers
 # ax.yaxis.set_ticks_position('none')

 # get width and height of axes object to compute
 # matching arrowhead length and width
 dps = fig.dpi_scale_trans.inverted()
 bbox = ax.get_window_extent().transformed(dps)
 width, height = bbox.width, bbox.height

 # manual arrowhead width and length
 hw = 1./20.*(ymax-ymin)
 hl = 1./20.*(xmax-xmin)
 lw = 1. # axis line width
 ohg = 0.3 # arrow overhang

 # compute matching arrowhead length and width
 yhw = hw/(ymax-ymin)*(xmax-xmin)* height/width
 yhl = hl/(xmax-xmin)*(ymax-ymin)* width/height

 # draw x and y axis
 ax.arrow(xmin, 0, xmax-xmin, 0., fc='w', ec='w', lw = lw,
 head_width=hw, head_length=hl, overhang = ohg,
 length_includes_head= True, clip_on = False)

 ax.arrow(0, ymin, 0., ymax-ymin, fc='w', ec='w', lw = lw,
 head_width=yhw, head_length=yhl, overhang = ohg,
 length_includes_head= True, clip_on = False)

# Meine easing-Funktion
def ease(n):
 if n < 0.0:
 return 0
 elif n > 1.0:
 return 1
 else:
 return 3*n**2-2*n**3

# Meine Floor/Warte Funktion
def wait(n):
 if n < 0.0:
 return 0
 else:
 return n

# Canvas erstellen
fig = plt.figure()
ax = fig.add_subplot(111)
fig.set_size_inches([8,9])

def f(x):
 return -0.05*x**2+125
xlin = np.linspace(0,60,100)


# Beschriftung und Optik

plt.xlabel(r"$x$ in $\rm{m}$", horizontalalignment='right', x=1.0)
plt.ylabel(r"$y$ in $\rm{m}$", horizontalalignment='right', y=1.0)
ax.set_xlim(0,100)
ax.set_ylim(0,139)
plt.grid(alpha=.4)
plt.xticks(np.arange(0, 100, 20))
plt.yticks(np.arange(0, 140, 20))
ax.yaxis.set_minor_locator(MultipleLocator(10))
ax.xaxis.set_minor_locator(MultipleLocator(10))
ax.tick_params(axis='x', direction = "inout", length= 10.0, which='both', width=3)
ax.tick_params(axis='y', direction = "inout", length= 10.0, which='both', width=3)


xsub = np.array([0])

# statische Linien definieren
line2, = ax.plot(xsub,f(xsub),linewidth=5,zorder=0,c = 'b')
arrowed_spines(fig, ax)
plt.tight_layout()

# Linien animieren
def animate(i):

 xsub = xlin[0:wait(i-20)]
 global line2
 line2.remove()
 line2, = ax.plot(xsub, f(xsub), linewidth=5, zorder=0,c = "b")
 plt.tight_layout()

animation = FuncAnimation(fig, animate, np.arange(0, 130, 1), interval=100)

plt.show()

# animation.save(r"YOUR\PATH\HERE\reduced_x-y.mov", codec="png",
 dpi=100, bitrate=-1,
 savefig_kwargs={'transparent': True, 'facecolor': 'none'})




-
How to set background transparency for animation with ffmpeg
23 octobre 2023, par Jan TurowskiI am creating animated physics graphs with a transparent background for later use in a NLE. On my old machine at work they display and render with background transparency just fine. The exact same code however loses background transparency in the ffmpeg render on both my Linux and my Windows machine at home. The animations are displayed just fine on all machines.


As I first thought it was a Linux issue, I tried to run the code on my Windows machine expecting it to work again. Unfortunately it did not.


Reduced code :


import numpy as np
import matplotlib.pylab as plt
from matplotlib.animation import FuncAnimation
import matplotlib.animation as animation
from matplotlib.pyplot import figure
from matplotlib import style
import locale
from matplotlib.ticker import (MultipleLocator, AutoMinorLocator)
# Set to German locale to get comma decimal separater
locale.setlocale(locale.LC_NUMERIC, "de_DE")
# Tell matplotlib to use the locale we set above
plt.rcParams['axes.formatter.use_locale'] = True

# plt.clf()
# plt.rcdefaults()

# Style und Font definieren

style.use('dark_background')

# Pfeile erstellen
def arrowed_spines(fig, ax):

 xmin, xmax = ax.get_xlim()
 ymin, ymax = ax.get_ylim()

 # removing the default axis on all sides:
 for side in ['bottom','right','top','left']:
 ax.spines[side].set_visible(False)

 # removing the axis ticks
 # plt.xticks([]) # labels
 # plt.yticks([])
 # ax.xaxis.set_ticks_position('none') # tick markers
 # ax.yaxis.set_ticks_position('none')

 # get width and height of axes object to compute
 # matching arrowhead length and width
 dps = fig.dpi_scale_trans.inverted()
 bbox = ax.get_window_extent().transformed(dps)
 width, height = bbox.width, bbox.height

 # manual arrowhead width and length
 hw = 1./20.*(ymax-ymin)
 hl = 1./20.*(xmax-xmin)
 lw = 1. # axis line width
 ohg = 0.3 # arrow overhang

 # compute matching arrowhead length and width
 yhw = hw/(ymax-ymin)*(xmax-xmin)* height/width
 yhl = hl/(xmax-xmin)*(ymax-ymin)* width/height

 # draw x and y axis
 ax.arrow(xmin, 0, xmax-xmin, 0., fc='w', ec='w', lw = lw,
 head_width=hw, head_length=hl, overhang = ohg,
 length_includes_head= True, clip_on = False)

 ax.arrow(0, ymin, 0., ymax-ymin, fc='w', ec='w', lw = lw,
 head_width=yhw, head_length=yhl, overhang = ohg,
 length_includes_head= True, clip_on = False)

# Meine easing-Funktion
def ease(n):
 if n < 0.0:
 return 0
 elif n > 1.0:
 return 1
 else:
 return 3*n**2-2*n**3

# Meine Floor/Warte Funktion
def wait(n):
 if n < 0.0:
 return 0
 else:
 return n

# Canvas erstellen
fig = plt.figure()
ax = fig.add_subplot(111)
fig.set_size_inches([8,9])

def f(x):
 return -0.05*x**2+125
xlin = np.linspace(0,60,100)


# Beschriftung und Optik

plt.xlabel(r"$x$ in $\rm{m}$", horizontalalignment='right', x=1.0)
plt.ylabel(r"$y$ in $\rm{m}$", horizontalalignment='right', y=1.0)
ax.set_xlim(0,100)
ax.set_ylim(0,139)
plt.grid(alpha=.4)
plt.xticks(np.arange(0, 100, 20))
plt.yticks(np.arange(0, 140, 20))
ax.yaxis.set_minor_locator(MultipleLocator(10))
ax.xaxis.set_minor_locator(MultipleLocator(10))
ax.tick_params(axis='x', direction = "inout", length= 10.0, which='both', width=3)
ax.tick_params(axis='y', direction = "inout", length= 10.0, which='both', width=3)


xsub = np.array([0])

# statische Linien definieren
line2, = ax.plot(xsub,f(xsub),linewidth=5,zorder=0,c = 'b')
arrowed_spines(fig, ax)
plt.tight_layout()

# Linien animieren
def animate(i):

 xsub = xlin[0:wait(i-20)]
 global line2
 line2.remove()
 line2, = ax.plot(xsub, f(xsub), linewidth=5, zorder=0,c = "b")
 plt.tight_layout()

animation = FuncAnimation(fig, animate, np.arange(0, 130, 1), interval=100)

plt.show()

# animation.save(r"YOUR\PATH\HERE\reduced_x-y.mov", codec="png",
 dpi=100, bitrate=-1,
 savefig_kwargs={'transparent': True, 'facecolor': 'none'})