
Recherche avancée
Médias (3)
-
MediaSPIP Simple : futur thème graphique par défaut ?
26 septembre 2013, par
Mis à jour : Octobre 2013
Langue : français
Type : Video
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
-
GetID3 - Boutons supplémentaires
9 avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (47)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
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 ) (...) -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (5431)
-
FFmpeg with Nvidia GPU - full HW transcode with 50i to 50p deinterlacing
5 janvier 2018, par Jernej StopinšekI’m trying to do a full hardware transcode of an udp stream to hls
with 50i to 50p deinterlacing.I’m using ffmpeg and Nvidia GPU.
Since HLS requires deinterlacing
I would like to deinterlace an interlaced source stream and preserve
as much smooth motion and picture quality as possible.My hardware, software and driver info :
GPU : Tesla P100-PCIE-12GB
Nvidia Driver Version : 387.26
Cuda compilation tools, release 9.1, V9.1.85
FFmpeg from git on 20171218
ffmpeg version N-89520-g3f88744067 Copyright (c) 2000-2017 the FFmpeg
developers built with gcc 6.3.0 (Debian 6.3.0-18) 20170516
configuration : —enable-gpl
—enable-cuda-sdk —enable-libx264 —enable-libx265 —enable-nonfree —enable-libnpp —enable-opengl —enable-opencl —enable-libfreetype —enable-openssl —enable-libzvbi —enable-libfontconfig —enable-libfreetype —enable-libfribidi —extra-cflags=-I/usr/local/cuda/include —extra-ldflags=-L/usr/local/cuda/lib64 —arch=x86_64libavutil 56. 6.100 / 56. 6.100
libavcodec 58. 8.100 / 58.
8.100
libavformat 58. 3.100 / 58. 3.100
libavdevice 58. 0.100 / 58. 0.100
libavfilter 7. 7.100 / 7. 7.100
libswscale 5.
0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100Input stream info :
ffmpeg -t 00:05:00 -i udp://xxx.xxx.xxx.xxx:xxxx -map 0:0 -vf idet -c rawvideo -y -f rawvideo /dev/null
Input #0, mpegts, from ’udp ://xxx.xxx.xxx.xxx:xxxx’ :
Duration :
N/A, start : 49634.159411, bitrate : N/A
Program xxxxx
Metadata : service_name :
service_provider : Stream
#0:0[0x44d] : Video : h264 (Main) ([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:10x19de : Audio : mp2 ([3][0][0][0] /
0x0003), 48000 Hz, stereo, s16p, 192 kb/s
Stream
#0:20x19e1 : Subtitle : dvb_subtitle ([6][0][0][0] / 0x0006)Output #0, rawvideo, to ’/dev/null’ :
Metadata :
encoder :
Lavf58.3.100
Stream #0:0 : Video : rawvideo (I420 / 0x30323449),
yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 622080 kb/s, 25 fps, 25
tbn, 25 tbc
Metadata :
encoder : Lavc58.8.100 rawvideo
frame= 7538 fps= 25 q=-0.0 Lsize=22896675kB time=00:05:01.52
bitrate=622080.0kbits/s dup=38 drop=0 speed=1.02x
video:22896675kB audio:0kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead : 0.000000%
[Parsed_idet_0 @
0x56370b3c5080] Repeated Fields : Neither : 7458 Top : 24 Bottom : 18
[Parsed_idet_0 @ 0x56370b3c5080] Single frame detection : TFF : 281 BFF :
13 Progressive : 5639 Undetermined : 1567
[Parsed_idet_0 @
0x56370b3c5080] Multi frame detection : TFF : 380 BFF : 0 Progressive :
7120 Undetermined : 0
This is my command for adaptive hardware deinterlacing. It gives great results with picture, but sound is out of sync.
ffmpeg -y -err_detect ignore_err -loglevel debug -vsync -1 -hwaccel cuvid -hwaccel_device 1 -c:v h264_cuvid -deint adaptive -r:v 50 -gpu:v 1 -i "udp://xxx.xxx.xxx.xxx:xxxx=?overrun_nonfatal=1&fifo_size=84450&buffer_size=33554432" -map 0:0 -map 0:1 -c:a aac -b:a 196k -c:v h264_nvenc -flags -global_header+cgop -gpu:v 1 -g:v 50 -bf:v 4 -coder:v cabac -b_adapt:v false -b:v 5184000 -minrate:v 5184000 -maxrate:v 5184000 -bufsize:v 2488320 -rc:v cbr_hq -2pass:v true -rc-lookahead:v 25 -no-scenecut:v 1 -profile:v high -preset:v slow -color_range:v 1 -color_trc:v 1 -color_primaries:v 1 -colorspace:v 1 -f hls -hls_time 5 -hls_list_size 3 -start_number 0 -hls_flags delete_segments /srv/hls/program_01/1080p/index.m3u8
If I add option "-drop_second_field 1" to h264_cuvid and remove -r:v 50 from input and put it to h264_nvenc - then transcoded stream has synced audio, but I think I’m losing quality due to drop_second_field option.
ffmpeg -y -err_detect ignore_err -loglevel debug -vsync -1 -hwaccel cuvid -hwaccel_device 1 -c:v h264_cuvid -deint adaptive -drop_second_field 1 -gpu:v 1 -i "udp://xxx.xxx.xxx.xxx:xxxx=?overrun_nonfatal=1&fifo_size=84450&buffer_size=33554432" -map 0:0 -map 0:1 -c:a aac -b:a 196k -c:v h264_nvenc -flags -global_header+cgop -gpu:v 1 -g:v 50 -r:v 50 -bf:v 4 -coder:v cabac -b_adapt:v false -b:v 5184000 -minrate:v 5184000 -maxrate:v 5184000 -bufsize:v 2488320 -rc:v cbr_hq -2pass:v true -rc-lookahead:v 25 -no-scenecut:v 1 -profile:v high -preset:v slow -color_range:v 1 -color_trc:v 1 -color_primaries:v 1 -colorspace:v 1 -f hls -hls_time 5 -hls_list_size 3 -start_number 0 -hls_flags delete_segments /srv/hls/program_01/1080p/index.m3u8
Could someone please point me in the right direction how to properly deinterlace with cuvid and minimal possible loss of quality ?
-
build : h264 parser depends on full h264 decoder
19 mars 2014, par Luca Barbato -
Recording of Full HD 60 FPS videos in C#
17 mars 2021, par Alexander NaumovMy application works with a high-speed camera. I am trying to record a videofile using C#.


The task is pretty "simple" : to record the video from the camera. We need to record medium (higher-better) quality videos to save as many details as possible.


- 

- Resolution : 1920 x 1080 (FullHD)
- Frames per second (FPS) : 60
- Bitrate : I've started from 10000*1000 (but now I don't know)
- Mediacontainer : MP4, AVI (does not really matter, we just need to
solve our task)
- Codec : also does not matter, we just need speed and quality.
- Maximum size of videofile : 10 GB/hour














Framerate of the camera can be changed during the recording by the camera itself (not by user), so it's necessary to have something like timestamps for every frame or anything else.


The problem is not fast enough recording.
Example : using AForge libs, generated pictures ("white" noise), duration of test videos is 20 seconds.


Duration of video creating using different codecs (provided by AForge) :


- 

- Codec : MPEG4, Time : 33,703
- Codec : WMV1, Time : 45,338
- Codec : WMV2, Time : 45,530
- Codec : MSMPEG4v2, Time : 43,775
- Codec : MSMPEG4v3, Time : 44,390
- Codec : H263P, Time : 38,894
- Codec : FLV1, Time : 39,151
- Codec : MPEG2, Time : 35,561
- Codec : Raw, Time : 61,456




















Another libs we've tried is not satisfied us.
Accord.FFMPEG is slow because of strange inner exceptions.
EmguCV.FFMPEG has no timestamps, therefore it creates corrupted video.


Recording the video to the SSD drive did not give us any visible acceleration.


Google search gives no clear examples or modern solutions to solve this task. That's the main reason to write here.


There is a code sample of our test :


private static void AForge_test()
 {
 Console.WriteLine("AForge test started...");
 unsafe
 {
 Stopwatch watch = new Stopwatch();

 Console.WriteLine("FPS: {0}, W:{1}, H:{2}, T:{3}", fps, w, h, time);

 AForge.Video.FFMPEG.VideoCodec[] codecs = (AForge.Video.FFMPEG.VideoCodec[]) Enum.GetValues(typeof(AForge.Video.FFMPEG.VideoCodec));

 for(int k = 0; k < codecs.Length; k++)
 {
 /* if (codecs[k] != VideoCodec.MPEG4)
 continue;*/
 try
 {
 watch.Restart();

 Random r2 = new Random(200);
 AForge.Video.FFMPEG.VideoFileWriter vw = new AForge.Video.FFMPEG.VideoFileWriter();
 string name = String.Format("E:\\VideosHDD\\AForge_test_{0}_mid.avi", Enum.GetName(typeof(AForge.Video.FFMPEG.VideoCodec), codecs[k]));
 vw.Open(name, w, h, fps, codecs[k], 10000 * 1000);

 for (int i = 0; i < frames; i++)
 {
 vw.WriteVideoFrame(bmps[i%N]);
 }

 vw.Close();
 vw.Dispose();

 watch.Stop();

 Console.WriteLine("Codec: {0}, Time: {1:F3}", Enum.GetName(typeof(AForge.Video.FFMPEG.VideoCodec), codecs[k]), watch.ElapsedMilliseconds / 1000d);
 }
 catch(Exception ex)
 {
 Console.WriteLine("Error " + codecs[k].ToString());
 }

 }
 
 }

 Console.ReadKey();
 }



Additional :


- 

- We are ready to use not-for-free solutions, but free is preferable.
- One of the supposed reasons for low recording speed : (x86) building of applications. I tried so hard to find x64 Aforge building but failed in this. We really don't know is there any influence of application architecture on recording speed.






I am ensured that I don't know all the background of video recording and another "little" thing, so I would be very pleased to solutions with clear explanations.