
Recherche avancée
Autres articles (36)
-
Menus personnalisés
14 novembre 2010, parMediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
Menus créés à l’initialisation du site
Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...) -
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ; -
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 ) (...)
Sur d’autres sites (4746)
-
Rails 5 with Carrierwave and S3 - creating multiple video formats for DASH streaming works but mpd file breaks
22 novembre 2019, par Milindwhat I am doing -
i have aRails 5
app for video streaming(DASH MPEG) that usesFFMPEG
to get encoded stream videos by converting any single video into multiple videos of multiple bit rates/size and primarily also MPD FILE that can be played easily on html video player, which i have already tested by manually running the ffmpeg scripts on the console that generates all the files.However, I want to automate this process and hencecarrierwave
comes into the pictures.
Here, i usecarrierwave
to generate different versions(size/bitrate) of videos(mp4/webm) to upload to s3 but during running the version, where all the versions are successfully created in tmp folder, only the last version(mpd) that needs to create .mpd file, carrierwave creates a mp4 video file and just replaces the extension instead of actually creating the mpd file.So in the
aws s3(screenshot added below)
, i can see my all versions andmpd
file , but thatmpd
file which must be xml file is actually amp4
video file or uploaded version file itself.
I have also tried to create new file during the process, but it never works.
Has some one encountered this problem ?any help will be greatly appreciated ?
Ny code snippets below - model,uploader,output of script on the console during upload, s3 screenshot
##### models/video.rb ##########
mount_uploader :video, VideoUploader
####### uploaders/video_uploader.rb #########
class VideoUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
include CarrierWave::Video
include CarrierWave::Video::Thumbnailer
include ::CarrierWave::Backgrounder::Delay
####### for streaming ..first get the audio and then convert the input video into multiple bitrates/scale #######
###first get audio and then get all different versions of same video
version :video_audio do
process :get_audio
def get_audio
`ffmpeg -y -i "#{file.path}" -c:a aac -ac 2 -ab 128k -vn video_audio.mp4`
end
def full_filename(for_file)
"video_audio.mp4"
end
def filename
"video_audio.mp4"
end
end
####### similar to the above i have various version like ...#########
version :video_1080 do...end
version :video_720 do... end
version :video_480 do ...end
...and so on..and all these versions are successfully created and uploaded to s3, however..in next version ...show it also creates a video file whereas i need a simple mpd file ONLY.
###this is where even after everything works, in S3, i can see a video file of version mpd and not actual mpd file
version :mpd do
process :get_manifest
###here in the command below, the video.mpd file is successfully obtained but its uploaded as video.mpd file of added/uploaded video file and not a new mpd file
###tried with ffmpeg -f webm_dash_manifest -i too, but s3 still shows a mp4 file
`MP4Box -dash 1000 -rap -frag-rap -profile onDemand -out video.mpd video_1080.mp4 video_720.mp4 video_480.mp4 video_360.mp4 video_240.mp4 video_audio.mp4 `
end
end
######### sidekiq console output - successful mpd is generated ################
DASH-ing files - single segment
Subsegment duration 1.000 - Fragment duration: 1.000 secs
Splitting segments and fragments at GOP boundaries
DASHing file video_1080.mp4
DASHing file video_720.mp4
DASHing file video_480.mp4
DASHing file video_360.mp4
DASHing file video_240.mp4
DASHing file video_audio.mp4
\[DASH\] Generating MPD at time 2019-11-22T00:01:59.872Z
mpd_1mb.mp4
mpd_video.mpdthis is what the uploaded files looks on s3, notice the video.mpd, its a mp4 video file just like others which should have been a simple mpd file of not more than 2kb.
Is there something that I am missing ?
Can Carrierwave do this or is it not made for this ?
Do I have to write a callback and then programmatically upload files to s3, if carrierwave is not helping in this regard ?Kindly provide any suggestion or useful advice so that I can move ahead.
-
amix filter is causing audio to disappear
21 novembre 2019, par MasonI’m trying overlay audio onto a video. I have a very simple ffmpeg command (
auido.mp3
is much longer than the video)ffmpeg -i video.mp4 -i audio.mp3 -filter_complex "[0:a] [1:a] amix=duration=shortest [a]" -map 0:v -map [a] test.mp4
This produces a silent video. However, when not mapping the video stream
ffmpeg -i video.mp4 -i audio.mp3 -filter_complex "[0:a] [1:a] amix=duration=shortest [a]" -map [a] test.mp4
The resulting audio file is as expected.
What could be causing this issues ?
(Is there a better way to overlay audio onto a video via ffmpeg ?)
Edit : log
ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9.1.1 (GCC) 20190807
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41
creation_time : 2019-11-15T05:28:05.000000Z
Duration: 00:00:00.53, start: 0.000000, bitrate: 9463 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 9546 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)
Metadata:
creation_time : 2019-11-15T05:28:05.000000Z
handler_name : ?Mainconcept Video Media Handler
encoder : AVC Coding
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default)
Metadata:
creation_time : 2019-11-15T05:28:05.000000Z
handler_name : #Mainconcept MP4 Sound Media Handler
[mp3 @ 000001fdf5f7f040] Estimating duration from bitrate, this may be inaccurate
Input #1, mp3, from 'audio.mp3':
Metadata:
date : 2019-11-14 23:31
id3v2_priv.XMP : <?xpacket begin="\xef\xbb\xbf" id="W5M0MpCehiHzreSzNTczkc9d"?>\x0a\x0a \x0a <rdf 256="256" kb="kb"></rdf>s
Stream #1:0: Audio: mp3, 44100 Hz, stereo, fltp, 256 kb/s
Stream mapping:
Stream #0:1 (aac) -> amix:input0 (graph 0)
Stream #1:0 (mp3float) -> amix:input1 (graph 0)
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
amix (graph 0) -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[libx264 @ 000001fdf64ab700] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 000001fdf64ab700] profile High, level 4.0, 4:2:0, 8-bit
[libx264 @ 000001fdf64ab700] 264 - core 158 r2984 3759fcb - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - 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=6 lookahead_threads=1 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=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'test.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41
encoder : Lavf58.29.100
Stream #0:0(eng): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, q=-1--1, 30 fps, 15360 tbn, 30 tbc (default)
Metadata:
creation_time : 2019-11-15T05:28:05.000000Z
handler_name : ?Mainconcept Video Media Handler
encoder : Lavc58.54.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
encoder : Lavc58.54.100 aac
frame= 15 fps=0.0 q=-1.0 Lsize= 695kB time=00:00:00.40 bitrate=14232.7kbits/s speed=0.437x
video:693kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.226150%
[libx264 @ 000001fdf64ab700] frame I:1 Avg QP:30.52 size:101545
[libx264 @ 000001fdf64ab700] frame P:7 Avg QP:28.22 size: 44755
[libx264 @ 000001fdf64ab700] frame B:7 Avg QP:30.76 size: 42074
[libx264 @ 000001fdf64ab700] consecutive B-frames: 20.0% 40.0% 40.0% 0.0%
[libx264 @ 000001fdf64ab700] mb I I16..4: 68.3% 10.5% 21.2%
[libx264 @ 000001fdf64ab700] mb P I16..4: 17.6% 4.8% 4.3% P16..4: 28.5% 4.5% 2.8% 0.0% 0.0% skip:37.6%
[libx264 @ 000001fdf64ab700] mb B I16..4: 17.6% 2.4% 1.3% B16..8: 37.9% 6.7% 1.3% direct: 4.9% skip:27.8% L0:40.5% L1:54.3% BI: 5.2%
[libx264 @ 000001fdf64ab700] 8x8 transform intra:13.9% inter:59.5%
[libx264 @ 000001fdf64ab700] coded y,uvDC,uvAC intra: 54.5% 53.3% 42.3% inter: 15.3% 27.8% 21.6%
[libx264 @ 000001fdf64ab700] i16 v,h,dc,p: 5% 88% 5% 2%
[libx264 @ 000001fdf64ab700] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 10% 53% 29% 1% 1% 1% 2% 1% 2%
[libx264 @ 000001fdf64ab700] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 6% 80% 9% 1% 1% 0% 1% 0% 2%
[libx264 @ 000001fdf64ab700] i8c dc,h,v,p: 16% 80% 3% 1%
[libx264 @ 000001fdf64ab700] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 000001fdf64ab700] ref P L0: 40.3% 4.9% 11.0% 43.8%
[libx264 @ 000001fdf64ab700] ref B L0: 80.0% 11.1% 8.9%
[libx264 @ 000001fdf64ab700] kb/s:11349.57
[aac @ 000001fdf64ac600] Qavg: 41522.195 -
How to add day suffix[st,nd,rd,th] in timestamp's date in ffmpeg command ? [duplicate]
16 décembre 2019, par Milan TejaniThis question already has an answer here :
I am using this command to add time stamp in video :
ffmpeg -y -i input.mp4 -vf "drawtext=fontfile=roboto.ttf:fontsize=36:fontcolor=yellow:text='%{pts\:gmtime\:1575526882\:%d %b, %Y %I\\\:%M %p}'" -preset ultrafast -f mp4 output.mp4
this command generate date & time :
05 Dec, 2019 06:21 AM
but i want to add day suffix after day in date like this :
05th Dec, 2019 06:21 AM
//like 1st,2nd,3rd,4th,5th.... etc
what changes i have to do to achieve this ?