
Recherche avancée
Autres articles (54)
-
Support de tous types de médias
10 avril 2011Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)
-
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...) -
Personnaliser les catégories
21 juin 2013, parFormulaire de création d’une catégorie
Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire.
Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)
Sur d’autres sites (8427)
-
How To Use FFMPEG -filter_complex_script When Merging Multiple Videos With Different Resolution
12 janvier 2021, par MatteHere's the command I'm using when merging two videos with different resolution, It works well


$command = 'ffmpeg -i first.mp4 -i second.mp4 -filter_complex "[0:v]scale='.$originalDimensions.':force_original_aspect_ratio=decrease,pad='.$originalDimensions.':-1:-1,setsar=1,fps=30,format=yuv420p[v0]; [1:v]scale='.$originalDimensions.':force_original_aspect_ratio=decrease,pad='.$originalDimensions.':-1:-1,setsar=1,fps=30,format=yuv420p[v1]; 
 [v0][0:a][v1][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" -c:v libx264 -c:a aac -movflags +faststart '.$dupSavePath.' 2>&1';



It works nice and the output has no issues.


But now I want to merge multiple videos using a list of files.


We can use
concat
command and provide the list.txt file having a path to all the other video files.

I was going through the documentation and found that it's possible by using -filter_complex_script but have no idea how to make it work


Here's the command I used so far but the output having audio sync errors


ffmpeg -f concat -i downloads/list.txt -acodec ac3_fixed -vcodec libx264 -s 720x480 -r 60 -strict experimental output.mp4 2>&1



I can use the filter-graph here but I want to do it using
concat
command because the number of input files may vary.

-
How to get the output resolution after successful encode ?
11 janvier 2021, par Daniel Birowsky PopeskiI'm using fluent-ffmpeg and I'm already able to get the output resolution in the 'on end' event :


createFfmpegCommand()
 .input(fs.createReadStream(readPath))
 .noAudio()
 .fps(30)
 .format('mp4')
 .videoCodec('libx264')
 .videoFilter([
 {filter: 'scale', options: '1920:1920:force_original_aspect_ratio=decrease'},
 {filter: 'setpts', options: '1.5*PTS'},
 ])
 .outputOption('-crf 30')
 .outputOption('-movflags frag_keyframe')
 .outputOption('-movflags +faststart')
 .output(mp4WriteStream)
 .on('start', () => console.log('processing started'))
 .on('error', err => console.error('err', err))
 .on('end', (_,res) => console.log('processing success',res))
 .run();



However, i'd like it to be machine-readable (json or xml). Instead, it looks like this :


ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
 built with Apple clang version 12.0.0 (clang-1200.0.32.28)
 configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1_8 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --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-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack
 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
 libavresample 4. 0. 0 / 4. 0. 0
 libswscale 5. 7.100 / 5. 7.100
 libswresample 3. 7.100 / 3. 7.100
 libpostproc 55. 7.100 / 55. 7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'pipe:0':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: mp42mp41
 creation_time : 2020-05-28T09:51:18.000000Z
 Duration: 00:00:02.23, start: 0.000000, bitrate: N/A
 Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 9108 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)
 Metadata:
 creation_time : 2020-05-28T09:51:18.000000Z
 handler_name : ?Mainconcept Video Media Handler
 encoder : AVC Coding
Stream mapping:
 Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
[libx264 @ 0x7f92d9808e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7f92d9808e00] profile High, level 4.0, 4:2:0, 8-bit
[libx264 @ 0x7f92d9808e00] 264 - core 161 r3027 4121277 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=30.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'pipe:1':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: mp42mp41
 encoder : Lavf58.45.100
 Stream #0:0(eng): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1920x1080, q=-1--1, 30 fps, 15360 tbn, 30 tbc (default)
 Metadata:
 creation_time : 2020-05-28T09:51:18.000000Z
 handler_name : ?Mainconcept Video Media Handler
 encoder : Lavc58.91.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame= 64 fps=0.0 q=36.0 size= 0kB time=00:00:00.16 bitrate= 1.7kbits/s dup=21 drop=0 speed=0.316x 
frame= 100 fps=0.0 q=-1.0 Lsize= 108kB time=00:00:03.23 bitrate= 274.7kbits/s dup=33 drop=0 speed=3.25x 
video:106kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.906519%
[libx264 @ 0x7f92d9808e00] frame I:1 Avg QP:25.71 size: 8782
[libx264 @ 0x7f92d9808e00] frame P:25 Avg QP:30.10 size: 2308
[libx264 @ 0x7f92d9808e00] frame B:74 Avg QP:27.92 size: 564
[libx264 @ 0x7f92d9808e00] consecutive B-frames: 1.0% 0.0% 3.0% 96.0%
[libx264 @ 0x7f92d9808e00] mb I I16..4: 19.4% 77.2% 3.3%
[libx264 @ 0x7f92d9808e00] mb P I16..4: 0.3% 0.8% 0.1% P16..4: 4.6% 1.3% 0.4% 0.0% 0.0% skip:92.5%
[libx264 @ 0x7f92d9808e00] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 4.0% 0.2% 0.0% direct: 0.0% skip:95.7% L0:44.2% L1:54.8% BI: 1.0%
[libx264 @ 0x7f92d9808e00] 8x8 transform intra:75.0% inter:78.3%
[libx264 @ 0x7f92d9808e00] coded y,uvDC,uvAC intra: 8.8% 8.8% 2.4% inter: 0.3% 0.2% 0.0%
[libx264 @ 0x7f92d9808e00] i16 v,h,dc,p: 77% 7% 10% 6%
[libx264 @ 0x7f92d9808e00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 48% 3% 42% 1% 1% 1% 1% 1% 1%
[libx264 @ 0x7f92d9808e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 16% 26% 7% 4% 4% 3% 5% 6%
[libx264 @ 0x7f92d9808e00] i8c dc,h,v,p: 89% 5% 5% 1%
[libx264 @ 0x7f92d9808e00] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x7f92d9808e00] ref P L0: 66.9% 11.1% 16.7% 5.3%
[libx264 @ 0x7f92d9808e00] ref B L0: 87.5% 9.9% 2.6%
[libx264 @ 0x7f92d9808e00] ref B L1: 96.4% 3.6%
[libx264 @ 0x7f92d9808e00] kb/s:259.80



Which doesn't let me be comfortable that my regex to extract the output resolution is always going to work.


Also, I don't wanna make another call/fileread just to get the resolution. Mainly because my files are stored in S3, where
ffprobe
doesn't work.

-
avutils/vulkan : hwmap, respect src frame resolution
21 janvier 2021, par Xu Guangxinavutils/vulkan : hwmap, respect src frame resolution
fixes http://trac.ffmpeg.org/ticket/9055
The hw decoder may allocate a large frame from AVHWFramesContext, and adjust width and height based on bitstream.
We need to use resolution from src frame instead of AVHWFramesContext.test command :
ffmpeg -loglevel debug -hide_banner -hwaccel vaapi -init_hw_device vaapi=va :/dev/dri/renderD128 -hwaccel_device va -hwaccel_output_format vaapi -init_hw_device vulkan=vulk -filter_hw_device vulk -i 1920x1080.264 -c:v libx264 -r:v 30 -profile:v high -preset veryfast -vf "hwmap,chromaber_vulkan=0:0,hwdownload,format=nv12" -map 0 -y vaapiouts.mkvexpected :
No green bar at bottom.