
Recherche avancée
Autres articles (102)
-
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...) -
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 : (...) -
Contribute to translation
13 avril 2011You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
MediaSPIP is currently available in French and English (...)
Sur d’autres sites (6681)
-
avformat : remove deprecated FF_API_GET_DUR_ESTIMATE_METHOD
19 février, par James Almer -
"Error opening input" error when running ffmpeg via shell script
15 octobre 2024, par Roni YanivI'm on a macbook running sonoma 14.7.


I have the following ffmpeg command which runs just fine by itself in the same folder of the files I need to modify :


ffmpeg -i "water-stream-90fps.mp4" -vf "drawtext=text='Frame\: %{frame_num}': start_number=1: x=(w-text_w): y=(h-text_h):fontsize=(h*10/100):fontcolor=yellow,drawtext=text='%{pts\:hms}':x=0:y=0:fontsize=(h*10/100):fontcolor=yellow" "water-stream-90fps-with-markers.mp4"


However, when I try to use it in a shell script by running
./add_markers.sh
in the same folder, I get an error.

This is the
add_markers.sh
script :

#!/bin/bash

# Replace '/path/to/your/folder' with the actual path to your folder
folder=$(pwd)

# Replace 'ffmpeg -i input.mp4 -vf scale=640:480 output.mp4' with your desired FFmpeg command
ffmpeg_command="ffmpeg -i input.mp4 -vf \"drawtext=text='Frame\: %{frame_num}': start_number=1: x=(w-text_w): y=(h-text_h):fontsize=(h*10/100):fontcolor=yellow,drawtext=text='%{pts\:hms}':x=0:y=0:fontsize=(h*10/100):fontcolor=yellow\" output.mp4"

echo "$ffmpeg_command"

# Loop through all files in the folder and execute the FFmpeg command

for file in "$folder"/*; do
 filename=$(basename "${file%.*}") #get only the first part of the file name without path or extension

 # Replace 'input.mp4' with the current filename and 'output.mp4' with the new filename. 
 # Added double quotes to manage filenames with spaces.
 new_command="${ffmpeg_command//input.mp4/\"$filename.mp4\"}"
 new_command="${new_command//output.mp4/\"$filename-with-markers.mp4\"}"

 echo "Running $new_command"

 $new_command

done



This is the error I get (for one of the files, same error for all of them) :


Running ffmpeg -i "water-stream-90fps.mp4" -vf "drawtext=text='Frame\: %{frame_num}': start_number=1: x=(w-text_w): y=(h-text_h):fontsize=(h*10/100):fontcolor=yellow,drawtext=text='%{pts\:hms}':x=0:y=0:fontsize=(h*10/100):fontcolor=yellow" "water-stream-90fps-with-markers.mp4"
ffmpeg version 7.0 Copyright (c) 2000-2024 the FFmpeg developers
 built with Apple clang version 15.0.0 (clang-1500.3.9.4)
 configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/7.0 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopenvino --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
 libavutil 59. 8.100 / 59. 8.100
 libavcodec 61. 3.100 / 61. 3.100
 libavformat 61. 1.100 / 61. 1.100
 libavdevice 61. 1.100 / 61. 1.100
 libavfilter 10. 1.100 / 10. 1.100
 libswscale 8. 1.100 / 8. 1.100
 libswresample 5. 1.100 / 5. 1.100
 libpostproc 58. 1.100 / 58. 1.100
[in#0 @ 0x6000015bc300] Error opening input: No such file or directory
Error opening input file "water-stream-90fps.mp4".
Error opening input files: No such file or directory



I tried all kinds of things but my brain is starting to swell. Any guidance/help would be appreciated.


-
FFMpegCore.Exceptions.FFMpegException : 'ffmpeg exited with non-zero exit-code'
15 octobre 2024, par secretplyI am looking to retrieve the
loudnorm
data in JSON format from FFmpeg (using FFMpegCore 5.1.0). This is the code I currently have :

await FFMpegArguments
 .FromPipeInput(new StreamPipeSource(fileStream.OpenReadStream()))
 .OutputToPipe(new StreamPipeSink(outputStream), options => options.WithCustomArgument("-af loudnorm=print_format=json"))
 .ProcessAsynchronously();



This is the exception I get, which is similar to this old GitHub issue.


System.IO.IOException: 'Pipe is broken.'

This exception was originally thrown at this call stack:
 System.IO.Pipes.PipeStream.PipeValueTaskSource.GetResult(short)
 System.IO.Pipes.PipeStream.PipeValueTaskSource.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(short)
 System.IO.Stream.CopyToAsync.__Core|27_0(System.IO.Stream, System.IO.Stream, int, System.Threading.CancellationToken) in Stream.cs
 FFMpegCore.Arguments.InputPipeArgument.ProcessDataAsync(System.Threading.CancellationToken)
 FFMpegCore.Arguments.PipeArgument.During(System.Threading.CancellationToken)
 FFMpegCore.FFMpegArguments.During(System.Threading.CancellationToken)
 FFMpegCore.FFMpegArgumentProcessor.Process(Instances.ProcessArguments, System.Threading.CancellationTokenSource)
 FFMpegCore.FFMpegArgumentProcessor.ProcessAsynchronously(bool, FFMpegCore.FFOptions)



I am trying to replicate the following FFmpeg command and JSON output :


ffmpeg -i "file.flac" -af loudnorm=print_format=json -f null -



{
 "input_i" : "-21.87",
 "input_tp" : "-7.13",
 "input_lra" : "5.00",
 "input_thresh" : "-32.04",
 "output_i" : "-24.76",
 "output_tp" : "-10.36",
 "output_lra" : "4.10",
 "output_thresh" : "-34.84",
 "normalization_type" : "dynamic",
 "target_offset" : "0.76"
}



If I add
.ForceFormat("null")
to theOutputToPipe
options, I do not get the exception but when I read the output stream, it returns an empty string. In the issue mentioned, I know they mentioned a way to get theFFMpegErrorOutput
property but I do not know how that can be done. I could not find an example of outputting a stream as JSON. If anyone can point me in the right direction or can provide an alternative solution, I would greatly appreciate it.

Update


I made a change to the
StreamPipeSource()
method where I copied over the uploaded file to aMemoryStream
. With this change, the followingFFMpegException
is thrown.

FFMpegCore.Exceptions.FFMpegException: 'ffmpeg exited with non-zero exit-code (-22 - ffmpeg version 7.0.1-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
 built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
 configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
 libavutil 59. 8.100 / 59. 8.100
 libavcodec 61. 3.100 / 61. 3.100
 libavformat 61. 1.100 / 61. 1.100
 libavdevice 61. 1.100 / 61. 1.100
 libavfilter 10. 1.100 / 10. 1.100
 libswscale 8. 1.100 / 8. 1.100
 libswresample 5. 1.100 / 5. 1.100
 libpostproc 58. 1.100 / 58. 1.100
[in#0 @ 000001bda86c67c0] Error opening input: Invalid argument
Error opening input file \\.\pipe\FFMpegCore_c6e5c.
Error opening input files: Invalid argument)'