
Recherche avancée
Médias (1)
-
Sintel MP4 Surround 5.1 Full
13 mai 2011, par
Mis à jour : Février 2012
Langue : English
Type : Video
Autres articles (40)
-
Librairies et logiciels spécifiques aux médias
10 décembre 2010, parPour un fonctionnement correct et optimal, plusieurs choses sont à prendre en considération.
Il est important, après avoir installé apache2, mysql et php5, d’installer d’autres logiciels nécessaires dont les installations sont décrites dans les liens afférants. Un ensemble de librairies multimedias (x264, libtheora, libvpx) utilisées pour l’encodage et le décodage des vidéos et sons afin de supporter le plus grand nombre de fichiers possibles. Cf. : ce tutoriel ; FFMpeg avec le maximum de décodeurs et (...) -
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 (...) -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...)
Sur d’autres sites (5991)
-
FFMPEG when live streaming sends a message and exits after some frames were sent
30 octobre 2020, par jstuardowhen doing an streaming with FFMPEG all works perfectly until I get these messages and then, ffmpeg.exe exits :


av_interleaved_write_frame(): Unknown error

frame= 1224 fps=3.4 q=13.0 size= 2758kB time=00:01:21.94 bitrate= 275.8kbits/s speed=0.226x 

av_interleaved_write_frame(): Unknown error

[flv @ 000001e310e8a1c0] Failed to update header with correct duration.

[flv @ 000001e310e8a1c0] Failed to update header with correct filesize.

Error writing trailer of rtmp://example.com/s/2b32abdc-130c-43e5-997e-079e69d1fd7f: Error number -10053 occurred

frame= 1224 fps=3.4 q=13.0 Lsize= 2758kB time=00:01:21.98 bitrate= 275.6kbits/s speed=0.226x 

video:2481kB audio:221kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.084671%

[libx264 @ 000001e310ad6080] frame I:41 Avg QP:10.29 size: 57664

[libx264 @ 000001e310ad6080] frame P:1183 Avg QP:13.52 size: 148

[libx264 @ 000001e310ad6080] mb I I16..4: 100.0% 0.0% 0.0%

[libx264 @ 000001e310ad6080] mb P I16..4: 0.1% 0.0% 0.0% P16..4: 0.2% 0.0% 0.0% 0.0% 0.0% skip:99.7%

[libx264 @ 000001e310ad6080] coded y,uvDC,uvAC intra: 10.9% 7.1% 5.4% inter: 0.0% 0.1% 0.0%

[libx264 @ 000001e310ad6080] i16 v,h,dc,p: 84% 6% 6% 4%

[libx264 @ 000001e310ad6080] i8c dc,h,v,p: 91% 6% 3% 1%

[libx264 @ 000001e310ad6080] kb/s:248.98

[aac @ 000001e310a46d40] Qavg: 108.454

Conversion failed!



Normally, the messages I received are similar to this :


frame= 1196 fps=3.4 q=13.0 size= 2692kB time=00:01:20.08 bitrate= 275.4kbits/s speed=0.227x 



Which are the expected messages. Sometimes, I received this message, but this does not cause ffmpeg.exe to exit :


Input #0, matroska,webm, from 'pipe:':

 Metadata:

 encoder : Chrome

 Duration: N/A, start: 0.000000, bitrate: N/A

 Stream #0:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)

 Stream #0:1(eng): Video: h264 (Constrained Baseline), yuv420p(progressive), 1920x1080, SAR 1:1 DAR 16:9, 30.30 fps, 14.99 tbr, 1k tbn, 60 tbc (default)



What may be happening ? maybe it is a problem of the RTMP server ? or something is wrong with FFMPEG ?


This version of FFMPEG.EXE is for windows. The programming language is C# from where I am launching FFMPEG.EXE process.


As I told, this happens after several frames sent to the server. Only once, this problem occured after a few frames sent. That is why I suspect that the RTMP server is the problem.


EDIT : This is the command :


FFMPEG -i - -c:v libx264 -preset ultrafast -tune zerolatency -max_muxing_queue_size 1000 -bufsize 5000 -r 15 -g 30 -keyint_min 30 -x264opts keyint=30 -crf 25 -pix_fmt yuv420p -profile:v baseline -level 3 -c:a aac -b:a 22k -ar 22050 -f flv rtmp://rtmp.xxxx.yyyy



Regards
Jaime


-
How to restream multicast stream with ffmpeg
26 octobre 2020, par verbI am new to ffmpeg and need to restream multicast and scale it. Tried different parameters and i have managed to restream and scale but it always appear some pat,pmt or pcr error and som interuptions in the stream appear.The input stream is cbr 14Mbit and i try to set the bitrate as 6Mbit please check my config and if you notice something wrong let me know :




ffmpeg -re -i "udp ://@238.252.250.9:5000 ?overrun_nonfatal=1&fifo_size=1000000&bitrate=70000000&pkt_size=188" -map 0:0 -map 0:2 -b:v 3000k -minrate 3000k -maxrate 4000k -bufsize 8000K -pcr_period 20 -flush_packets 0 -tune zerolatency -preset ultrafast -threads 2 -c:a copy -qmax 12 -f mpegts -muxrate 6M "udp ://@239.253.251.13:5505 ?pkt_size=188&overrun_nonfatal=1&localaddr=10.253.251.66&bitrate=6000000"




here is the input stream :


Input #0, mpegts, from 'udp://@238.252.250.9:5000':
 Duration: N/A, start: 46612.831967, bitrate: N/A
 Program 2002 
 Metadata:
 service_name : RT Doc HD
 service_provider: GLOBECAST
 Stream #0:0[0x7e5]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 50 tbr, 90k tbn, 50 tbc
 Stream #0:1[0x7e6](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 192 kb/s
 Stream #0:2[0x7e7](eng): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s



I don't understand all parameters especially the parameters concerning input/output udp stream so please help me to solve the correct command.


-
how to send the input data to FFMPEG from a C# program
18 octobre 2020, par jstuardoI need to send a binary stream to FFMPEG so that it sends to an RTMP server.


I did it in a nodejs script using socket.io library and in Linux. It works perfectly.


I need to do the same, but in a Windows Forms application using C#.


This is how I run the ffmpeg.exe application :


_currentProcess = new Process();
 _currentProcess.StartInfo.FileName = _ffmpegExe;
 _currentProcess.StartInfo.Arguments = BuildOptions(framesPerSecond, audioBitRate, audioEncoding, rtmpServer);
 _currentProcess.StartInfo.UseShellExecute = false;
 _currentProcess.StartInfo.CreateNoWindow = true;
 _currentProcess.StartInfo.RedirectStandardInput = true;
 _currentProcess.StartInfo.RedirectStandardError = true;
 _currentProcess.ErrorDataReceived += CurrentProcess_ErrorDataReceived;
 _currentProcess.Start();
 _currentProcess.BeginErrorReadLine();



BuildOptions
method is defined this way :

private string BuildOptions(int framesPerSecond, int audioBitRate, string audioEncoding, string rtmpServer)
 {
 string options;
 if (framesPerSecond == 1)
 {
 options = $"-i - -c:v libx264 -preset ultrafast -tune zerolatency -r 1 -g 2 -keyint_min 2 -x264opts keyint=2 -crf 25 -pix_fmt yuv420p -profile:v baseline -level 3 -c:a aac -b:a {audioEncoding} -ar {audioBitRate}-f flv {rtmpServer}";
 }
 else if (framesPerSecond == 15)
 {
 options = $"-i - -c:v libx264 -preset ultrafast -tune zerolatency max_muxing_queue_size 1000 -bufsize 5000 -r 15 -g 30 -keyint_min 30 -x264opts keyint=30 -crf 25 -pix_fmt yuv420p -profile:v baseline -level 3 -c:a aac -b:a {audioEncoding} -ar {audioBitRate} -f flv {rtmpServer}";
 }
 else
 {
 options = $"-i - -c:v libx264 -preset ultrafast -tune zerolatency -c:a aac -ar {audioBitRate} -b:a {audioEncoding} -bufsize 5000 -f flv {rtmpServer}";
 }

 return options;
 }



I am sending the data to the standard input this way :


public void EncodeAndSend(byte[] data)
 {
 if (_currentProcess != null)
 {
 var streamWriter = _currentProcess.StandardInput;
 streamWriter.Write(Encoding.GetEncoding("ISO-8859-1").GetChars(data));
 }
 }



And finally, this method is for receiving the standard error which receives the result from ffmpeg.exe :


private void CurrentProcess_ErrorDataReceived(object sender, DataReceivedEventArgs e)
 {
 Console.WriteLine(e.Data);
 }



When I run the application, this is shown in the console :


ffmpeg version 4.3.1-2020-10-01-essentials_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 10.2.0 (Rev3, 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-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
 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
pipe:: Invalid data found when processing input



If I change the
EncodeAndSend
method to be :

public void EncodeAndSend(byte[] data)
 {
 if (_currentProcess != null)
 {
 var streamWriter = _currentProcess.StandardInput;
 streamWriter.Write(data);
 }
 }



pipe:: Invalid data found when processing input
error is not produced, but no more outputs are shown so it seems it is not working.

What is wrong with this ? how can I send the data to the FFMPEG process ?


Finally, I tell you that the binary stream comes from the camera by mean of MediaRecorder in a web page (the same used for my program in nodejs server, so that it is not the issue here)