
Recherche avancée
Médias (1)
-
SPIP - plugins - embed code - Exemple
2 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
Autres articles (111)
-
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 (...) -
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 (...) -
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 (...)
Sur d’autres sites (8613)
-
Video encoded by ffmpeg.exe giving me a garbage video in c# .net
10 septembre 2018, par Amit YadavI want to record video through webcam and file to be saved in
.mp4
format. So for recording i am usingAforgeNet.dll
for recording and formp4
format i am encoding raw video intomp4
usingffmpeg.exe
usingNamedPipeStreamServer
as i receive frame i push into the named pipe buffer. this process works fine i have checked inProcessTheErrorData
event but when i stop recording the output file play garbage video shown in the image belowHere is Code for this
Process Process;
NamedPipeServerStream _ffmpegIn;
byte[] _videoBuffer ;
const string PipePrefix = @"\\.\pipe\";
public void ffmpegWriter()
{
if(File.Exists("outputencoded.mp4"))
{
File.Delete("outputencoded.mp4");
}
_videoBuffer = new byte[widht * heigth * 4];
var audioPipeName = GetPipeName();
var videoPipeName = GetPipeName();
var videoInArgs = $@" -thread_queue_size 512 -use_wallclock_as_timestamps 1 -f rawvideo -pix_fmt rgb32 -video_size 640x480 -i \\.\pipe\{videoPipeName}";
var videoOutArgs = $"-vcodec libx264 -crf 15 -pix_fmt yuv420p -preset ultrafast -r 10";
_ffmpegIn = new NamedPipeServerStream(videoPipeName, PipeDirection.Out, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous, 0, _videoBuffer.Length);
Process=StartFFmpeg($"{videoInArgs} {videoOutArgs} \"{"outputencoded.mp4"}\"", "outputencoded.mp4");
}
bool WaitForConnection(NamedPipeServerStream ServerStream, int Timeout)
{
var asyncResult = ServerStream.BeginWaitForConnection(Ar => { }, null);
if (asyncResult.AsyncWaitHandle.WaitOne(Timeout))
{
ServerStream.EndWaitForConnection(asyncResult);
return ServerStream.IsConnected;
}
return false;
}
static string GetPipeName() => $"record-{Guid.NewGuid()}";
public static Process StartFFmpeg(string Arguments, string OutputFileName)
{
var process = new Process
{
StartInfo =
{
FileName = "ffmpeg.exe",
Arguments = Arguments,
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardError = true,
RedirectStandardInput = true,
},
EnableRaisingEvents = true
};
// var logItem = ServiceProvider.Get<ffmpeglog>().CreateNew(Path.GetFileName(OutputFileName));
process.ErrorDataReceived += (s, e) => ProcessTheErrorData(s,e);
process.Start();
process.BeginErrorReadLine();
return process;
}
</ffmpeglog>and Writing each frame like this.
private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
try
{
if (_recording)
{
using (var bitmap = (Bitmap) eventArgs.Frame.Clone())
{
var _videoBuffers = ImageToByte(bitmap);
if (_firstFrameTime != null)
{
bitmap.Save("image/" + DateTime.Now.ToString("ddMMyyyyHHmmssfftt")+".bmp");
_lastFrameTask?.Wait();
_lastFrameTask = _ffmpegIn.WriteAsync(_videoBuffers, 0, _videoBuffers.Length);
}
else
{
if (_firstFrame)
{
if (!WaitForConnection(_ffmpegIn, 5000))
{
throw new Exception("Cannot connect Video pipe to FFmpeg");
}
_firstFrame = false;
}
_firstFrameTime = DateTime.Now;
_lastFrameTask?.Wait();
_lastFrameTask = _ffmpegIn.WriteAsync(_videoBuffers, 0, _videoBuffers.Length);
}
}
}
using (var bitmap = (Bitmap) eventArgs.Frame.Clone())
{
var bi = bitmap.ToBitmapImage();
bi.Freeze();
Dispatcher.CurrentDispatcher.Invoke(() => Image = bi);
}
}
catch (Exception exc)
{
MessageBox.Show("Error on _videoSource_NewFrame:\n" + exc.Message, "Error", MessageBoxButton.OK,
MessageBoxImage.Error);
StopCamera();
}
}Even i have written each frame to disk as bitmap .bmp and frames are correct but i don’t know what’s i am missing here ? please help thanks in advance.
-
Stream with ffmpeg over LAN ?
5 septembre 2018, par KalpitI’m trying to stream a mpegts file over LAN, with the command
ffmpeg -re -i in.ts -vcodec copy -acodec copy -f mpegts "udp://localhost:5000/live/stream"
And trying to capture 10s chunks of it over LAN(at server) at
ffmpeg -i udp://192.168.xx.xx:5000/live/stream -c copy -f segment -segment_time 10 -strftime 1 "in /%Y-%m-%d_%H-%M-%S.mp4"
This isn’t working. I tested the stream in VLC, and there’s nothing to play.
Now, I suspect this is a port issue, since FFMPEG doesnt seem to write/listen over the 5000 port specified. I used netstat to check, and there are no PID including ffmpeg on the port. However, the command
ffmpeg -i udp://127.0.0.1:5000/live/stream -c copy -f segment -segment_time 10 -strftime 1 "in/%Y-%m-%d_%H-%M-%S.mp4"
generates the desired output on my machine(localhost), as does ffplay. Can anyone help ?
-
using ffmpeg for silence detect with input pipe
24 août 2018, par MoharrerI am trying to detect silence from audio file with ffmpeg in c#.
i want to pipe input from c# memory stream and get silence duration like following commandffmpeg -hide_banner -i pipe:0 -af silencedetect=noise=-50dB:d=0.5 -f null -
but there is a problem, when input stream pump in pipe, ffmpeg waiting in p.WaitForExit() line.
when i change p.WaitForExit() to p.WaitForExit(1000) and set force timeout the following result is displayed.[mp3 @ 00000163818da580] invalid concatenated file detected - using bitrate for durationInput #0, mp3, from ’pipe:0’ : Metadata : encoder : Lavf57.71.100 Duration : N/A, start : 0.023021, bitrate : 86 kb/s Stream #0:0 : Audio : mp3, 48000 Hz, mono, fltp, 86 kb/sStream mapping : Stream #0:0 -> #0:0 (mp3 (mp3float) -> pcm_s16le (native))Output #0, null, to ’pipe :’ : Metadata : encoder : Lavf58.17.101 Stream #0:0 : Audio : pcm_s16le, 48000 Hz, mono, s16, 768 kb/s Metadata : encoder : Lavc58.21.105 pcm_s16le
[silencedetect @ 0000023df1786840] silence_start : 50.1098
[silencedetect @ 0000023df1786840] silence_end : 51.5957 | silence_duration : 1.48588
[silencedetect @ 0000023df1786840] silence_start : 51.5959
[silencedetect @ 0000023df1786840] silence_end : 52.127 | silence_duration : 0.531062
[silencedetect @ 0000023df1786840] silence_start : 52.8622
[silencedetect @ 0000023df1786840] silence_end : 54.0096 | silence_duration : 1.14733
[silencedetect @ 0000023df1786840] silence_start : 54.6804as you can see in result silence detection done but with error at the first.
this mean input file pumped correctly in ffmpg but waiting.
how can i solve problem without set time out for p.WaitForExit()private void Execute(string exePath, string parameters, Stream inputStream) byte[] Data = new byte[5000] ;
var p = new Process() ;
var sti = p.StartInfo ;
sti.CreateNoWindow = true ;
sti.UseShellExecute = false ;
sti.FileName = exePath ;
sti.Arguments = arg ;
sti.LoadUserProfile = false ;
sti.RedirectStandardInput = true ;
sti.RedirectStandardOutput = true ;sti.RedirectStandardError = true ;
p.ErrorDataReceived += P_ErrorDataReceived ;
p.OutputDataReceived += P_OutputDataReceived ;p.Start() ;
p.BeginOutputReadLine() ;
p.BeginErrorReadLine() ;var spInput = new StreamPump(inputStream, p.StandardInput.BaseStream, 4064) ;
spInput.Pump((pump, result) =>
pump.Output.Flush() ;
inputStream.Dispose() ;
) ;//unlimited waiting
//p.WaitForExit() ;p.WaitForExit(1000) ;