
Recherche avancée
Médias (1)
-
Richard Stallman et le logiciel libre
19 octobre 2011, par
Mis à jour : Mai 2013
Langue : français
Type : Texte
Autres articles (2)
-
Supporting all media types
13 avril 2011, parUnlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)
-
Le plugin : Podcasts.
14 juillet 2010, parLe problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
Types de fichiers supportés dans les flux
Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...)
Sur d’autres sites (1295)
-
Python ffmpeg subprocess makes unplayable file, but is right size, and just hangs
8 juin 2021, par nadermxI currently have this subprocess calling ffmpeg.


print("Starting alphamerge")
cmd = "ffmpeg -y -nostats -loglevel 0 -i %s -i %s -filter_complex '[1][0]scale2ref[mask][main];[main][mask]alphamerge' -c:v qtrle %s" % (
 file_path, temp_file, output)
process = sp.Popen(cmd, shell=True, stdout=sp.PIPE, stderr=sp.PIPE)
stdout, stderr = process.communicate()
print('after call')

if stderr:
 return "ERROR: %s" % stderr.decode("utf-8")
print("Process finished")





But the process ends up making a file over 2 gigs, unplayable, and just hangs. It never prints "Process finished", "after call", or an error, it just hangs.


Am I calling subprocess with ffmpeg wrong ?


-
avcodec/mips : Refine ff_h264_h_lpf_luma_inter_msa
12 avril 2021, par gxw -
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