
Recherche avancée
Autres articles (37)
-
Librairies et binaires spécifiques au traitement vidéo et sonore
31 janvier 2010, parLes logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
Binaires complémentaires et facultatifs flvtool2 : (...) -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...) -
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 ) (...)
Sur d’autres sites (5876)
-
java.lang.NoClassDefFoundError : Could not initialize class on Linux (Works fine on Windows)
26 décembre 2016, par Jake MillerI’m using a C++ FFmpeg wrapper for Java (org.bytedeco.javacpp). This works perfectly on a Windows machine (my development machine) but throws this error when ran on Linux (Amazon Web Services Elastic Beanstalk) :
java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avutil
at java.lang.Class.forName0(Native Method) ~[na:1.8.0_111]
at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_111]
at org.bytedeco.javacpp.Loader.load(Loader.java:472) ~[javacpp-1.2.1.jar!/:1.2.1]
at org.bytedeco.javacpp.Loader.load(Loader.java:417) ~[javacpp-1.2.1.jar!/:1.2.1]
at org.bytedeco.javacpp.avformat$AVFormatContext.<clinit>(avformat.java:2819) ~[ffmpeg-3.2.1-1.3.jar!/:1.2.1]
at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:391) ~[javacv-1.3.jar!/:1.3]
at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:385) ~[javacv-1.3.jar!/:1.3]
</clinit>I’ve been troubleshooting for the past 2 days and have tried the following to fix the issue :
- upgrade to Linux to 2.4
- downgrading javacpp to 1.2.1
- running mvn clean
- running mvn -U
- deleting contents of /.m2/ and redownloading dependencies
- various combinations of dependency versions
- git clone on a Linux VM & running mvn install there
When looking further into the issue, I stumbled upon documentation for
avformat$AVFormatContext
as it’s in the stack trace posted above (6th line). The documentation for a C++ class namedAVFormatContext
. Whenever I attempt to view the class in Eclipse, it saysSource Not Found
.My question : could this problem possibly be caused by the C++ libraries on my Linux VM ? None of the above solutions fixed it so this is my only hypothesis as of now.
Here’s my other Stack Overflow question regarding this subject : Java.lang.NoClassDefFoundError caused by FFmpeg when deployed on Linux as a packaged .war (Works on development machine)
-
Enabling libmp3lame for FFMPEG on elastic beanstalk
13 octobre 2017, par Adam SithI am trying to enable libmp3lame with FFMPEG in elastic beanstalk (Amazon Redhat Linux machine).
I am able to successfully install FFMPEG in
/ffmpeg.config
with the following script :# .ebextensions/ffmpeg.config
packages:
yum:
autoconf: []
automake: []
cmake: []
freetype-devel: []
gcc: []
gcc-c++: []
git: []
libtool: []
make: []
nasm: []
pkgconfig: []
zlib-devel: []
sources:
/usr/local/src: http://ffmpeg.org/releases/ffmpeg-3.2.tar.bz2
commands:
ffmpeg_install:
cwd: /usr/local/src/ffmpeg-3.2
command: sudo ./configure --prefix=/usr && make && make installI need to install libmp3lame however. I’ve tried to do this with an
--enable-libmp3lame
flag and the directions here. The modified script :packages:
yum:
autoconf: []
automake: []
cmake: []
freetype-devel: []
gcc: []
gcc-c++: []
git: []
libtool: []
make: []
nasm: []
pkgconfig: []
zlib-devel: []
sources:
/usr/local/src: http://ffmpeg.org/releases/ffmpeg-3.2.tar.bz2
commands:
01-install_libmp3lame:
cwd: /usr/local/src/
command: curl -L -O http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz && tar xzvf lame-3.99.5.tar.gz && cd lame-3.99.5 && ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm && make && make install
02-ffmpeg_install:
cwd: /usr/local/src/ffmpeg-3.2
command: sudo ./configure --enable-libmp3lame && --prefix=/usr && make && make installThis doesn’t work. Command
01-install_libmp3lame
completes. Command 02-ffmpeg_install fails because :[2017-10-12T20:55:19.324Z] INFO [24606] - [Application update app-8fe3-123456_7895@111/AppDeployStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_3_clover_platform/Command 02-ffmpeg_install] : Activity execution failed, because: ERROR: libmp3lame >= 3.98.3 not found
I have tried installing libmp3lame in /ffmpeg-3.2 and got the same issue.
-
Generate waveforms for audio files with large amount of channels
3 mai 2021, par motioI want to generate .png files displaying the waveforms of interleaved audio .wav files using the FFmpeg libraries. http://ffmpeg.org/documentation.html


If the interleaved audio file contains maximum 8 channels, I manage to successfully achieve this using the following command line :


ffmpeg -i 8_channels_input.wav -y -filter_complex "showwavespic=s=1920x1200:split_channels=1" -frames:v 1 8_channels_waveform_output.png



However, if the interleaved audio file contains more than 8 channels, FFmpeg gives the following :




Input #0, wav, from '30_channels_input.wav' : Duration : 00:00:02.08,
bitrate : 31752 kb/s Stream #0:0 : Audio : pcm_s24le ([1][0][0][0] /
0x0001), 44100 Hz, 30 channels, s32 (24 bit), 31752 kb/s Stream
mapping : Stream #0:0 (pcm_s24le) -> showwavespic showwavespic ->
Stream #0:0 (png) Press [q] to stop, [?] for help [auto_resampler_0 @
0x7faf5d60a3c0] Cannot select channel layout for the link between
filters auto_resampler_0 and Parsed_showwavespic_0. [auto_resampler_0
@ 0x7faf5d60a3c0] Unknown channel layouts not supported, try
specifying a channel layout using 'aformat=channel_layouts=something'.
Error reinitializing filters ! Failed to inject frame into filter
network : Invalid argument Error while processing the decoded data for
stream #0:0 Conversion failed !




Here is the related documentation (c.f. bottom of the page) :
https://trac.ffmpeg.org/wiki/AudioChannelManipulation


My problem is :
I need to generate the visual waveforms of audio files containing up to 30 channels.
All my attempts were unsuccessful so far (I am trying to define custom channel layouts and I am not sure if I am on the right track here).


To simplify, I need to complete/modify the following command to make it work :


ffmpeg -i 30_channels_input.wav -y -filter_complex "showwavespic=s=1920x1200:split_channels=1" -frames:v 1 30_channels_waveform_output.png 



[EDIT] Remarks :


I manage to generate the waveforms of a 10 channels input by combining existing layouts :


ffmpeg -i 10_channels_input.wav -y -filter_complex "aformat=channel_layouts=7.1+downmix, showwavespic=s=1920x1200:split_channels=1" -frames:v 1 10_channels_waveform_output.png



However, if you attempt to do it for a 30 channels input by combining 5x 6.0 layouts :


ffmpeg -i 30_channels_input.wav -y -filter_complex "aformat=channel_layouts=6.0+6.0+6.0+6.0+6.0, showwavespic=s=1920x1200:split_channels=1" -frames:v 1 30_channels_waveform_output.png



FFmpeg gives the following :




[auto_resampler_0 @ 0x7ffd7002a480] [SWR @ 0x7ffd7013a000] Rematrix is
needed between 30 channels and 6.0 but there is not enough information
to do it [auto_resampler_0 @ 0x7ffd7002a480] Failed to configure
output pad on auto_resampler_0 Error reinitializing filters ! Failed to
inject frame into filter network : Invalid argument Error while
processing the decoded data for stream #0:0




My assumption is that I need to create a custom layout using 30 unique channel IDs (c.f. https://trac.ffmpeg.org/wiki/AudioChannelManipulation bottom of the page) instead of combining existing layouts.


It seems that only 25 channel IDs are available though. Creating a custom layout with 30 channels is maybe not possible at all...


[EDIT 2] Remarks :


I finally found the documentation I was looking for. But it still seems that generating the waveforms of 30 channels would be difficult.


Here is how to create custom layouts :
https://ffmpeg.org/ffmpeg-utils.html




A custom channel layout can be specified as a sequence of terms,
separated by ’+’ or ’|’. Each term can be :


the name of a standard channel layout (e.g. ‘mono’, ‘stereo’, ‘4.0’,
‘quad’, ‘5.0’, etc.) the name of a single channel (e.g. ‘FL’, ‘FR’,
‘FC’, ‘LFE’, etc.) a number of channels, in decimal, followed by ’c’,
yielding the default channel layout for that number of channels (see
the function av_get_default_channel_layout). Note that not all channel
counts have a default layout. a number of channels, in decimal,
followed by ’C’, yielding an unknown channel layout with the specified
number of channels. Note that not all channel layout specification
strings support unknown channel layouts. a channel layout mask, in
hexadecimal starting with "0x" (see the AV_CH_* macros in
libavutil/channel_layout.h. Before libavutil version 53 the trailing
character "c" to specify a number of channels was optional, but now it
is required, while a channel layout mask can also be specified as a
decimal number (if and only if not followed by "c" or "C").


See also the function av_get_channel_layout defined in
libavutil/channel_layout.h.




e.g.


Therefore, for 11 channels input :


ffmpeg -i 11_channels_input.wav -y -filter_complex "aformat=channel_layouts=FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL, showwavespic=s=1920x1200:split_channels=1" -frames:v 1 11_waveform_output.png



—> worked for me


while :


ffmpeg -i 11_channels_input.wav -y -filter_complex "aformat=channel_layouts=11c, showwavespic=s=1920x1200:split_channels=1" -frames:v 1 11_waveform_output.png



—> does not work


But :


ffmpeg -i 24_channels_input.wav -y -filter_complex "aformat=channel_layouts=24c, showwavespic=s=1920x1200:split_channels=1" -frames:v 1 24_waveform_output.png



—> does work


and finally, what I am still trying to achieve :


ffmpeg -i 30_channels_input.wav -y -filter_complex "aformat=channel_layouts=30c, showwavespic=s=1920x1200:split_channels=1" -frames:v 1 30_waveform_output.png



—> does not work


p.s.


- 

- I execute these commands in sub shells via Ruby scripts (puts %x...)
- My system : macOS 10.15.6 | zsh | FFmpeg 4.4 | Ruby 2.6.3