
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (74)
-
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...) -
MediaSPIP : Modification des droits de création d’objets et de publication définitive
11 novembre 2010, parPar défaut, MediaSPIP permet de créer 5 types d’objets.
Toujours par défaut les droits de création et de publication définitive de ces objets sont réservés aux administrateurs, mais ils sont bien entendu configurables par les webmestres.
Ces droits sont ainsi bloqués pour plusieurs raisons : parce que le fait d’autoriser à publier doit être la volonté du webmestre pas de l’ensemble de la plateforme et donc ne pas être un choix par défaut ; parce qu’avoir un compte peut servir à autre choses également, (...) -
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs
Sur d’autres sites (7271)
-
Carrierwave and FFMPEG saving to 2 destinations - Rails, Fog, S3
20 avril 2013, par dodgerogers747I have a video model, which uses Carrierwave, Fog, FFMPEG and S3 to handle video files. I have a method in my video model that takes a screenshot before the video is saved to S3. Both Video and screenshot are saved to S3 using 2 Carrierwave Uploader classes, Image_uploader and video_uploader with the video being saved to the Video.file column and screenshot saved at the Video.screenshot.
This all works as intended, however, FFMPEG also saves a copy of the screenshot to the rails filesystem, "Rails.root/file_is_saved_here". For now I have FFMPEG saving this file into the Rails.root/public/uploads folder along with the tmp files created by Carrierwave.
How can I get one screenshot saved to S3 without the second being saved on the filesystem ?
Commit & trace data and
Running transcoding...
/opt/local/bin/ffmpeg -y -i /Users/me/rails_projects/teebox_network/public/uploads/tmp/200/14_jan_2013_hk.mov -ss 3 -vframes 1 -f image2 /Users/garyrogers/rails_projects/teebox_network/public/uploads/14_jan_2013_hk.mov_screenshot.png
Transcoding of /Users/me/rails_projects/teebox_network/public/uploads/tmp/200/14_jan_2013_hk.mov to /Users/garyrogers/rails_projects/teebox_network/public/uploads/14_jan_2013_hk.mov_screenshot.png succeeded
Started POST "/videos" for 127.0.0.1 at 2013-04-19 17:03:07 -0700
Processing by VideosController#create as */*
Parameters: {"utf8"=>"✓", "authenticity_token"=>"DjFIu3971GxKYJzjDFu7LaBx85iOHPa5HzO6PLdSW+8=", "video"=>{"user_id"=>"5", "file"=>#quicktime\r\n", @tempfile=#var/folders/1g/d9qbm7_s0_5fcljtvzysp1gc0000gn/T/RackMultipart20130419-751-19kisab>>}}
User Load (0.5ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 5 LIMIT 1
(0.2ms) BEGIN
SQL (14.9ms) INSERT INTO `videos` (`created_at`, `file`, `question_id`, `screenshot`, `updated_at`, `user_id`) VALUES ('2013-04-20 00:03:20', '14_jan_2013_hk.mov', NULL, '14_jan_2013_hk.mov_screenshot.png', '2013-04-20 00:03:20', 5)video.rb
class Video < ActiveRecord::Base
attr_accessible :user_id, :question_id, :file
belongs_to :question
belongs_to :user
default_scope order('created_at DESC')
before_save :take_screenshot
mount_uploader :file, VideoUploader
mount_uploader :screenshot, ImageUploader
def to_param
"#{id} - #{File.basename(self.file.path)}".parameterize
end
private
def take_screenshot
FFMPEG.ffmpeg_binary = '/opt/local/bin/ffmpeg'
movie = FFMPEG::Movie.new(self.file.current_path)
self.screenshot = movie.screenshot("#{Rails.root}/public/uploads/#{File.basename(self.file.path)}_screenshot.png", seek_time: 3 )
end
endimage_uploader class
class ImageUploader < CarrierWave::Uploader::Base
include Sprockets::Helpers::RailsHelper
include Sprockets::Helpers::IsolatedHelper
storage :fog
process resize_and_pad: [270, 135, '#000']
def store_dir
"uploads/#{model.class.to_s.underscore}_screenshots/#{mounted_as}_images/#{model.id}"
end
def extension_white_list
%w(png jpg)
# %w(ogg ogv 3gp mp4 m4v webm mov)
endVideo uploader class
class VideoUploader < CarrierWave::Uploader::Base
include Sprockets::Helpers::RailsHelper
include Sprockets::Helpers::IsolatedHelper
storage :fog
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def extension_white_list
%w(ogg ogv 3gp mp4 m4v webm mov m2v 3g2)
# %w(ogg ogv 3gp mp4 m4v webm mov)
end -
Initial ARIA-Required implementation
7 octobre 2013, par nschonniInitial ARIA-Required implementation
Add aria-required tags to any of the data, static or class required elements.
Dynamic validation for rules added through the form.validate rules object do not get picked up till first run. -
Set timeout on ffmpeg process
30 octobre 2013, par Thomas VervikSometims ffmpeg never completes, and thereby preventing conversions of other videos in the queue. Is it possible to set some sort of timeout in ffmpeg such that it terminates if it isnt finished within some given time, example 5 min
My command looks like this today :
ffmpeg -i /home/tomcat/bsafevideo/1efef9daa7f5000ed83d67f6fbd0e7d9/aad5adc307c4dd7e457509423a7f3734/69451c31cd592e86138423f6849d8141 -y -r 24 -ar 22050 -f mov -vf [in]transpose=1[rt0],[rt0]scale=iw*480/ih:480[sc0],[sc0]pad=640:480:140[pd0],movie=/srv/bsafe/tomcat7/webapps/ROOT/resources/images/logo_watermark.png [wm],[pd0][wm] overlay=W-w-140:0[out] /home/tomcat/bsafevideo/1efef9daa7f5000ed83d67f6fbd0e7d9/aad5adc307c4dd7e457509423a7f3734/69451c31cd592e86138423f6849d8141.mov -ar 22050 -b 1500k -vcodec libtheora -acodec libvorbis -f ogg -vf [in]transpose=1[rt0],[rt0]scale=iw*480/ih:480[sc0],[sc0]pad=640:480:140[pd0],movie=/srv/bsafe/tomcat7/webapps/ROOT/resources/images/logo_watermark.png [wm],[pd0][wm] overlay=W-w-140:0[out] /home/tomcat/bsafevideo/1efef9daa7f5000ed83d67f6fbd0e7d9/aad5adc307c4dd7e457509423a7f3734/69451c31cd592e86138423f6849d8141.ogg -ar 22050 -vcodec libx264 -profile baseline -vf [in]transpose=1[rt0],[rt0]scale=iw*480/ih:480[sc0],[sc0]pad=640:480:140[pd0],movie=/srv/bsafe/tomcat7/webapps/ROOT/resources/images/logo_watermark.png [wm],[pd0][wm] overlay=W-w-140:0[out] /home/tomcat/bsafevideo/1efef9daa7f5000ed83d67f6fbd0e7d9/aad5adc307c4dd7e457509423a7f3734/69451c31cd592e86138423f6849d8141_mp4.mp4
UPDATE. Thanks LordNeckBerd, you pointed me in right direction !
So I see now its kind of not ffmpeg really hanging, the issue is that my java code which reads the inputstream from the linux process will block since ffmpeg never returns a end of line, which I see now when Im running the command. This is the blocking line, it waits for more input from me.
Press [q] to stop, [?] for help
So its two issues here now. First is why this particular conversion is failing, and second, how to make sure ffmpeg is not making this (for my Java process) blocking command asking for more input.
C:\Program Files (x86)\Console2>ffmpeg -i C:/projectsGit/bsafe-server/classes/test/bs- base/video/ac7601e2bc3bc1545cd30ad3160f5232 -y -r 24 -ar 22050 -f mov C:/projectsGit/bsafe-server/classes/test/bs-base/video/ac7601e2bc3bc1545cd30ad3160f5232.mov -ar 22050 -b:v 1500k -vcodec libtheora -acodec libvorbis -f ogg C:/projectsGit/bsafe-server/classes/test/bs-base/video/ac7601e2bc3bc1545cd30ad3160f5232.ogg -ar 22050 -vcodec libx264 -profile:v baseline C:/projectsGit/bsafe-server/classes/test/bs-base/video/ac7601e2bc3bc1545cd30ad3160f5232_mp4.mp4
ffmpeg version N-54762-g38b701a Copyright (c) 2000-2013 the FFmpeg developers
built on Jul 15 2013 18:47:20 with gcc 4.7.3 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth -- enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable- libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable- libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable- libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable- libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame - -enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable- libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 52. 39.100 / 52. 39.100
libavcodec 55. 18.102 / 55. 18.102
libavformat 55. 12.102 / 55. 12.102
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 81.101 / 3. 81.101
libswscale 2. 3.100 / 2. 3.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 3.100 / 52. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:/projectsGit/bsafe-server/classes/test/bs- base/video/ac7601e2bc3bc1545cd30ad3160f5232':
Metadata:
major_brand : isom
minor_version : 0
compatible_brands: isom3gp4
creation_time : 2013-01-15 05:46:02
Duration: 00:00:10.03, start: 0.000000, bitrate: 394 kb/s
Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 640x480, 264 kb/s, SAR 65536:65536 DAR 4:3, 10.95 fps, 90k tbr, 90k tbn, 180k tbc
Metadata:
creation_time : 2013-01-15 05:46:02
handler_name : VideoHandle
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 127 kb/s
Metadata:
creation_time : 2013-01-15 05:46:02
handler_name : SoundHandle
[ogg @ 00000000027d7860] Frame rate very high for a muxer not efficiently supporting it.
Please consider specifying a lower framerate, a different muxer or -vsync 2
[mp4 @ 00000000027dacc0] Frame rate very high for a muxer not efficiently supporting it.
Please consider specifying a lower framerate, a different muxer or -vsync 2
[libx264 @ 0000000003e6b9c0] using SAR=1/1
[libx264 @ 0000000003e6b9c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0000000003e6b9c0] profile High, level 3.0
[libx264 @ 0000000003e6b9c0] 264 - core 133 r2334 a3ac64b - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - 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=24 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
[libx264 @ 00000000027db4a0] using SAR=1/1
[libx264 @ 00000000027db4a0] MB rate (108000000) > level limit (2073600)
[libx264 @ 00000000027db4a0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 00000000027db4a0] profile Constrained Baseline, level 5.2
[libx264 @ 00000000027db4a0] 264 - core 133 r2334 a3ac64b - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=0 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 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=0 weightp=0 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, mov, to 'C:/projectsGit/bsafe-server/classes/test/bs- base/video/ac7601e2bc3bc1545cd30ad3160f5232.mov':
Metadata:
major_brand : isom
minor_version : 0
compatible_brands: isom3gp4
encoder : Lavf55.12.102
Stream #0:0(eng): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=-1--1, 12288 tbn, 24 tbc
Metadata:
creation_time : 2013-01-15 05:46:02
handler_name : VideoHandle
Stream #0:1(eng): Audio: aac (libvo_aacenc) (mp4a / 0x6134706D), 22050 Hz, mono, s16, 128 kb/s
Metadata:
creation_time : 2013-01-15 05:46:02
handler_name : SoundHandle
Output #1, ogg, to 'C:/projectsGit/bsafe-server/classes/test/bs-base/video/ac7601e2bc3bc1545cd30ad3160f5232.ogg':
Metadata:
major_brand : isom
minor_version : 0
compatible_brands: isom3gp4
encoder : Lavf55.12.102
Stream #1:0(eng): Video: theora (libtheora), yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=2-31, 1500 kb/s, 90k tbn, 90k tbc
Metadata:
creation_time : 2013-01-15 05:46:02
handler_name : VideoHandle
Stream #1:1(eng): Audio: vorbis (libvorbis), 22050 Hz, mono, fltp
Metadata:
creation_time : 2013-01-15 05:46:02
handler_name : SoundHandle
Output #2, mp4, to 'C:/projectsGit/bsafe-server/classes/test/bs-base/video/ac7601e2bc3bc1545cd30ad3160f5232_mp4.mp4':
Metadata:
major_brand : isom
minor_version : 0
compatible_brands: isom3gp4
encoder : Lavf55.12.102
Stream #2:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=-1--1, 90k tbn, 90k tbc
Metadata:
creation_time : 2013-01-15 05:46:02
handler_name : VideoHandle
Stream #2:1(eng): Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 22050 Hz, mono, s16, 128 kb/s
Metadata:
creation_time : 2013-01-15 05:46:02
handler_name : SoundHandle
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> libx264)
Stream #0:1 -> #0:1 (aac -> libvo_aacenc)
Stream #0:0 -> #1:0 (h264 -> libtheora)
Stream #0:1 -> #1:1 (aac -> libvorbis)
Stream #0:0 -> #2:0 (h264 -> libx264)
Stream #0:1 -> #2:1 (aac -> libvo_aacenc)
Press [q] to stop, [?] for help