
Recherche avancée
Autres articles (17)
-
MediaSPIP Core : La Configuration
9 novembre 2010, parMediaSPIP Core fournit par défaut trois pages différentes de configuration (ces pages utilisent le plugin de configuration CFG pour fonctionner) : une page spécifique à la configuration générale du squelettes ; une page spécifique à la configuration de la page d’accueil du site ; une page spécifique à la configuration des secteurs ;
Il fournit également une page supplémentaire qui n’apparait que lorsque certains plugins sont activés permettant de contrôler l’affichage et les fonctionnalités spécifiques (...) -
Configuration spécifique d’Apache
4 février 2011, parModules spécifiques
Pour la configuration d’Apache, il est conseillé d’activer certains modules non spécifiques à MediaSPIP, mais permettant d’améliorer les performances : mod_deflate et mod_headers pour compresser automatiquement via Apache les pages. Cf ce tutoriel ; mode_expires pour gérer correctement l’expiration des hits. Cf ce tutoriel ;
Il est également conseillé d’ajouter la prise en charge par apache du mime-type pour les fichiers WebM comme indiqué dans ce tutoriel.
Création d’un (...) -
Multilang : améliorer l’interface pour les blocs multilingues
18 février 2011, parMultilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.
Sur d’autres sites (2854)
-
avformat/dashdec : add dash demuxer base version
9 septembre 2017, par Steven Liuavformat/dashdec : add dash demuxer base version
ffmpeg need a dash demuxer for demux the dash formats base on
https://github.com/samsamsam-iptvplayer/exteplayer3/blob/master/tmp/ffmpeg/patches/3.2.2/000001_add_dash_demux.patchTODO :
1. support multi bitrate dash.v2 fixed :
1. from autodetect to disabled
2. from camelCase code style to ffmpeg code style
3. from RepType to AVMediaType
4. fix variable typo
5. change time value from uint32_t to uint64_t
6. removed be used once API
7. change 'time(NULL)`, except it is not 2038-safe.' to av_gettime and av_timegm
8. merge complex free operation to free_fragment
9. use API from snprintf to av_asprintfv3 fixed :
1. fix typo from —enabled-xml2 to —enable-xml2v4 fixed :
1. from —enable-xml2 to —enable-libxml2
2. move system includes to top
3. remove nouse includes
4. rename enum name
5. add a trailing comma for the last entry enum
6. fix comment typo
7. add const to DASHContext class front
8. check sscanf if return arguments and give warning message when error
9. check validity before free seg->url and seg
10. check if the val is null, before use atollv5 fixed :
1. fix typo from mainifest to manifestv6 fixed :
1. from realloc to av_realloc
2. from free to av_freev7 fixed :
1. remove the -lxml2 from configure when require_pkg_configv8 fixed :
1. fix replace filename template by av_asprintf secure problemv9 modified :
1. make manifest parser clearlyv10 fixed :
1. fix function API name code style
2. remove redundant strreplace call
3. remove redundant memory operation and check return value from get_content_url()
4. add space between ) and
5. remove no need to log the value for printv11 fixed :
1. from atoll to strtoll
Suggested-by : Michael Niedermayer <michael@niedermayer.cc>v12 fixed :
1. remove strreplace and instead by av_strreplace
Suggested-by : Nicolas George <george@nsup.org>v13 fixed :
1. fix bug : cannot play :
http://dash.edgesuite.net/akamai/bbb_30fps/bbb_30fps.mpd
Reported-by : Andy Furniss <adf.lists@gmail.com>v14 fixed :
1. fix bug : TLS connection was non-properly terminated
2. fix bug : No trailing CRLF found in HTTP header
Reported-by : Andy Furniss <adf.lists@gmail.com>v15 fixed :
1. play youtube link : ffmpeg -i $(youtube-dl -J "https://www.youtube.com/watch?v=XmL19DOP_Ls" ; | jq -r ".requested_formats[0].manifest_url")
2. code refine for timeline living stream
Reported-by : Ricardo Constantino <wiiaboo@gmail.com>v16 fixed :
1. remove the snprintf and instead by get_segment_filename make safety
2. remove unnecessary loops
3. updated xmlStrcmp and xmlFree to av_* functions
4. merge code repeat into one function
5. add memory alloc faild check
6. update update_init_section and open_url
7. output safety error message when filename template not safe
Suggested-by : wm4 <nfxjfg@googlemail.com>v17 fixed :
1. add memory alloc faild check
2. fix resource space error at free_representationv18 fixed :
1. add condition of template formatv19 fixed :
1. fix typo of the option describev20 fixed :
1. add the c->base_url alloc check
2. make the DASHTmplId same to dashencv21 fixed :
1. remove get_repl_pattern_and_format and get_segment_filename
2. process use dashcomm APIsv22 fixed :
1. modify the include "dashcomm.h" to include "dash.h"
2. use internal API from dash_fill_tmpl_params to ff_dash_fill_tmpl_paramsSigned-off-by : Steven Liu <lq@onvideo.cn>
Signed-off-by : samsamsam <samsamsam@o2.pl> -
FFMPEG segment live video for DASH
23 décembre 2014, par staticI’m trying to stream live capture of desktop to my own server, which shall create an MPD with segment template for use with dash.js player.
Using the following command i managed to get it workingffmpeg -rtbufsize 6M -f x11grab -s 1366x768 -r 10 -i :0.0 -flags +global_header \
-vcodec libvpx -deadline realtime -profile:v 0 -keyint_min 1 -g 1 -cpu-used 0 \
-vb 1200k -qmin 10 -qmax 42 -threads 4 -bufsize 6000k -slices 4 -map 0 -an \
-f stream_segment -segment_time 2 -segment_format webm **/streamsThe output :
Input #0, x11grab, from ':0.0': Duration: N/A, start: 1419329032.549498, bitrate: N/A
Stream #0:0: Video: rawvideo (BGRA / 0x41524742), bgra, 1366x768, 10 fps, 10 tbr, 1000k tbn, 10 tbc
[libvpx@ 0x23ccf60] v1.3.0 Output #0, stream_segment, ssegment, to /streams/d':
Metadata:
encoder : Lavf56.15.102
Stream #0:0: Video: vp8 (libvpx), yuva420p, 1366x768, q=10-42, 1200 kb/s, 10 fps, 1k tbn, 10 tbc
Metadata: encoder: Lavc56.13.100 libvpx
Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> vp8 (libvpx))
Press [q] to stop, [?] for help
[swscaler @ 0x23ac0c0] Warning: data is not aligned! This can lead to a speedloss
frame= 2839 fps= 10 q=0.0 Lsize=N/A time=00:04:43.90 bitrate=N/A
video:135246kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknownIf I increase the number of frames to produce better quality, the latency drastically increases and the stream is not in sync with the MPD. This is caused by the fact that keyframes are created at every frame
-keyint_min 1 -g 1
because otherwise and errorMEDIA_ERR_SRC_NOT_SUPPORTED
is thrown by the player. This is probably because a keyframe must be found at the beginning of each segment.Could
ffmpeg
be used to generate keyframes as the first frame in each segment ? I try different values for-keyint_min x -g y
, for example number of frames but with no result (probably because the number of frames stabilized after a couple a seconds, so the first 2-3 segments were produced with inconsistent number of frames, so all the keyframes were introduced in wrong positions in the segments). -
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.