
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 (92)
-
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)
Sur d’autres sites (10009)
-
ffmpeg-mp4box-mpeg dash plays only few segments
30 octobre 2015, par IdrisNeed help in debugging the segment dash files
The input was an MP4 with these details. This was recorded from a video camera, the output from the camera was mkv and we converted into MP4 after editing the audio via adobe
- Size : 7.51 GB Frame rate : 25 frames/ second
- Data rate : 25326kbps
- Total bitrate : 25525kbps
Converted this to another mp4 with this command
ffmpeg -i "input.mp4" -s 1280x720 -c:v libx264 -b:v 750k -bf 2 -g 75 -sc_threshold 0 -an video_1280x720_750k.mp4
ffmpeg -i "input.mp4" -c:a aac -strict experimental -b:a 96k -ar 32000 -vn audio_96k.mp4The output video has
- fps : 25
- Data rate : 761kbps
- bitrate : 761kbps
Then, created the segmented dash through MP4Box
MP4Box -dash 10000 -frag 10000 -rap -segment-name video_0_1280000\segment_ video_1280x720_750k.mp4
MP4Box -dash 3000 -frag 10000 -rap -segment-name audio_0_96000\segment_ audio_96k.mp4The MPD generated was validated online and its perfect
UPDATE ! Included the MPD file
<?xml version="1.0"?>
<mpd xmlns="urn:mpeg:dash:schema:mpd:2011" minbuffertime="PT1.500S" type="static" mediapresentationduration="PT0H2M0.000S" maxsegmentduration="PT0H0M10.000S" profiles="urn:mpeg:dash:profile:full:2011">
<programinformation moreinformationurl="http://gpac.sourceforge.net">
</programinformation>
<period duration="PT0H2M0.000S">
<adaptationset segmentalignment="true" lang="eng">
<representation mimetype="audio/mp4" codecs="mp4a.40.2" audiosamplingrate="32000" startwithsap="1" bandwidth="98434">
<audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>
<segmentlist timescale="32000" duration="319999">
<initialization sourceurl="audio_0_96000/segment_init.mp4"></initialization>
<segmenturl media="audio_0_96000/segment_1.m4s"></segmenturl>
<segmenturl media="audio_0_96000/segment_2.m4s"></segmenturl>
<segmenturl media="audio_0_96000/segment_3.m4s"></segmenturl>
<segmenturl media="audio_0_96000/segment_4.m4s"></segmenturl>
<segmenturl media="audio_0_96000/segment_5.m4s"></segmenturl>
<segmenturl media="audio_0_96000/segment_6.m4s"></segmenturl>
<segmenturl media="audio_0_96000/segment_7.m4s"></segmenturl>
<segmenturl media="audio_0_96000/segment_8.m4s"></segmenturl>
<segmenturl media="audio_0_96000/segment_9.m4s"></segmenturl>
<segmenturl media="audio_0_96000/segment_10.m4s"></segmenturl>
<segmenturl media="audio_0_96000/segment_11.m4s"></segmenturl>
<segmenturl media="audio_0_96000/segment_12.m4s"></segmenturl>
<segmenturl media="audio_0_96000/segment_13.m4s"></segmenturl>
</segmentlist>
</representation>
</adaptationset>
<adaptationset segmentalignment="true" maxwidth="1280" maxheight="720" maxframerate="25" par="16:9" lang="eng">
<representation mimetype="video/mp4" codecs="avc3.64001f" width="1280" height="720" framerate="25" sar="1:1" startwithsap="1" bandwidth="764668">
<segmentlist timescale="12800" duration="125866">
<initialization sourceurl="video_0_1280000/segment_init.mp4"></initialization>
<segmenturl media="video_0_1280000/segment_1.m4s"></segmenturl>
<segmenturl media="video_0_1280000/segment_2.m4s"></segmenturl>
<segmenturl media="video_0_1280000/segment_3.m4s"></segmenturl>
<segmenturl media="video_0_1280000/segment_4.m4s"></segmenturl>
<segmenturl media="video_0_1280000/segment_5.m4s"></segmenturl>
<segmenturl media="video_0_1280000/segment_6.m4s"></segmenturl>
<segmenturl media="video_0_1280000/segment_7.m4s"></segmenturl>
<segmenturl media="video_0_1280000/segment_8.m4s"></segmenturl>
<segmenturl media="video_0_1280000/segment_9.m4s"></segmenturl>
<segmenturl media="video_0_1280000/segment_10.m4s"></segmenturl>
<segmenturl media="video_0_1280000/segment_11.m4s"></segmenturl>
<segmenturl media="video_0_1280000/segment_12.m4s"></segmenturl>
<segmenturl media="video_0_1280000/segment_13.m4s"></segmenturl>
</segmentlist>
</representation>
</adaptationset>
</period>
</mpd>Played the video through dashjs.. I believe it just plays the initial segment and errors out as MEDIA_ERR_DECODE..MEDIA_ERR_SRC_NOT_SUPPORTED.. or some message which says start not found..
Through chrome debugging I see that atleast 4 segments are correctly loading.. I am not sure whats going on..
Any help in debugging the issue is really appreciated. I really can’t understand if this is a problem with the file or ffmpeg or mp4box or chrome.
Output from chrome debugging tool
[dash.js 1.5.1] new MediaPlayer instance has been created
dash.all.js:11 Playback initiated!
dash.all.js:11 Parsing complete: ( xml2json: 5ms, objectiron: 10ms, total: 0.015s)
dash.all.js:11 Manifest has been refreshed at Mon Oct 26 2015 10:19:22 GMT-0400 (Eastern Daylight Time)[1445869162092]
dash.all.js:11 SegmentTimeline detected using calculated Live Edge Time
dash.all.js:11 MediaSource is open!
dash.all.js:11 [object Event]
dash.all.js:11 Duration successfully set to: 120
dash.all.js:11 Added 0 inline events
dash.all.js:11 video codec: video/mp4;codecs="avc3.64001f"
dash.all.js:11 [video] stop
dash.all.js:11 audio codec: audio/mp4;codecs="mp4a.40.2"
dash.all.js:11 [audio] stop
dash.all.js:11 No text data.
dash.all.js:11 No fragmentedText data.
dash.all.js:11 No muxed data.
dash.all.js:11 [video] start
dash.all.js:11 [video] Getting the request for time: 0
dash.all.js:11 [video] Index for time 0 is 0
dash.all.js:11 [video] SegmentList: 0 / 120
dash.all.js:11 [audio] start
dash.all.js:11 [audio] Getting the request for time: 0
dash.all.js:11 [audio] Index for time 0 is 0
dash.all.js:11 [audio] SegmentList: 0 / 120
dash.all.js:11 [video] Getting the request for time: 9.83328125
dash.all.js:11 [video] Index for time 9.83328125 is 0
dash.all.js:11 [video] SegmentList: 0 / 120
dash.all.js:11 [video] SegmentList: 9.83328125 / 120
dash.all.js:11 [audio] Getting the request for time: 9.99996875
dash.all.js:11 [audio] Index for time 9.99996875 is 0
dash.all.js:11 [audio] SegmentList: 0 / 120
dash.all.js:11 [audio] SegmentList: 9.99996875 / 120
dash.all.js:11 loaded audio:Media Segment:0 (200, 20ms, 6ms)
dash.all.js:11 loaded video:Media Segment:0 (200, 153ms, 43ms)
dash.all.js:11 loaded video:Initialization Segment:NaN (200, 0ms, 32ms)
dash.all.js:11 [video] Initialization finished loading
dash.all.js:11 loaded audio:Initialization Segment:NaN (200, 0ms, 34ms)
dash.all.js:11 [audio] Initialization finished loading
dash.all.js:11 [video] Getting the request for time: 19.6665625
dash.all.js:11 [video] Index for time 19.6665625 is 1
dash.all.js:11 [video] SegmentList: 9.83328125 / 120
dash.all.js:11 [video] SegmentList: 19.6665625 / 120
dash.all.js:11 [audio] Getting the request for time: 19.9999375
dash.all.js:11 [audio] Index for time 19.9999375 is 1
dash.all.js:11 [audio] SegmentList: 9.99996875 / 120
dash.all.js:11 [audio] SegmentList: 19.9999375 / 120
dash.all.js:11 [video] Stalling Buffer
dash.all.js:11 [video] Waiting for more buffer before starting playback.
dash.all.js:11 [video] Getting the request for time: 0
dash.all.js:11 [video] Index for time 0 is 0
dash.all.js:11 [audio] Stalling Buffer
dash.all.js:11 [audio] Waiting for more buffer before starting playback.
dash.all.js:11 [audio] Getting the request for time: 0
dash.all.js:11 [audio] Index for time 0 is 0
dash.all.js:11 <video> loadedmetadata
dash.all.js:11 Starting playback at offset: 0
dash.all.js:11 [video] Getting the request for time: 29.499843750000004
dash.all.js:11 [video] Index for time 29.499843750000004 is 2
dash.all.js:11 [video] SegmentList: 19.6665625 / 120
dash.all.js:11 [video] SegmentList: 29.499843750000004 / 120
dash.all.js:11 [video] Got enough buffer to start.
dash.all.js:11 [video] seek: 0
dash.all.js:11 [audio] Getting the request for time: 29.999906250000002
dash.all.js:11 [audio] Index for time 29.999906250000002 is 2
dash.all.js:11 [audio] SegmentList: 19.9999375 / 120
dash.all.js:11 [audio] SegmentList: 29.999906250000002 / 120
dash.all.js:11 [audio] Got enough buffer to start.
dash.all.js:11 [audio] seek: 0
dash.all.js:11 loaded audio:Media Segment:9.99996875 (200, 67ms, 24ms)
dash.all.js:11 loaded video:Media Segment:9.83328125 (200, 71ms, 31ms)
dash.all.js:11 [audio] Buffered Range: 0.032 - 9.984
dash.all.js:11 [audio] Getting the request for time: 0
dash.all.js:11 [audio] Index for time 0 is 0
dash.all.js:11 Start Event Controller
dash.all.js:11 [audio] Buffered Range: 0.032 - 19.999968
dash.all.js:11 [audio] Getting the request for time: 0
dash.all.js:11 [audio] Index for time 0 is 0
dash.all.js:11 <video> play
dash.all.js:11 [video] start
dash.all.js:11 [video] Getting the request for time: 0
dash.all.js:11 [video] Index for time 0 is 0
dash.all.js:11 [video] SegmentList: 0 / 120
dash.all.js:11 [video] SegmentList: 9.83328125 / 120
dash.all.js:11 [video] SegmentList: 19.6665625 / 120
dash.all.js:11 [audio] start
dash.all.js:11 <video> playing
dash.all.js:11 [video] Buffered Range: 0 - 9
dash.all.js:11 [video] Getting the request for time: 0
dash.all.js:11 [video] Index for time 0 is 0
dash.all.js:11 Do seek: 0.032
dash.all.js:11 <video> seek
dash.all.js:11 [video] Getting the request for time: 29.499843750000004
dash.all.js:11 [video] Index for time 29.499843750000004 is 2
dash.all.js:11 [video] SegmentList: 19.6665625 / 120
dash.all.js:11 [video] SegmentList: 29.499843750000004 / 120
dash.all.js:11 [video] seek: 0.032
dash.all.js:11 [audio] seek: 0.032
dash.all.js:11 [video] Getting the request for time: 9
dash.all.js:11 [video] Index for time 9 is 0
dash.all.js:11 [video] SegmentList: 0 / 120
dash.all.js:11 [video] SegmentList: 9.83328125 / 120
dash.all.js:11 [video] SegmentList: 19.6665625 / 120
dash.all.js:11 [video] SegmentList: 29.499843750000004 / 120
dash.all.js:11 [video] Buffered Range: 0 - 18
dash.all.js:11 [video] Getting the request for time: 0
dash.all.js:11 [video] Index for time 0 is 0
dash.all.js:11 loaded video:Media Segment:19.6665625 (200, 42ms, 33ms)
dash.all.js:11 <video> seeked
dash.all.js:11 Start Event Controller
dash.all.js:11 <video> playing
dash.all.js:11 [video] Buffered Range: 0 - 28
dash.all.js:11 [video] Getting the request for time: 0
dash.all.js:11 [video] Index for time 0 is 0
dash.all.js:11 [audio] Getting the request for time: 19.999968
dash.all.js:11 [audio] Index for time 19.999968 is 1
dash.all.js:11 [audio] SegmentList: 9.99996875 / 120
dash.all.js:11 [audio] SegmentList: 19.9999375 / 120
dash.all.js:11 [audio] Getting the request for time: 29.999906250000002
dash.all.js:11 [audio] Index for time 29.999906250000002 is 2
dash.all.js:11 [audio] SegmentList: 19.9999375 / 120
dash.all.js:11 [audio] SegmentList: 29.999906250000002 / 120
dash.all.js:11 loaded audio:Media Segment:19.9999375 (200, 102ms, 2ms)
dash.all.js:11 [audio] Buffered Range: 0.032 - 29.983968
dash.all.js:11 [audio] Getting the request for time: 0
dash.all.js:11 [audio] Index for time 0 is 0
dash.all.js:11 loaded audio:Media Segment:29.999906250000002 (200, 26ms, 2ms)
dash.all.js:11 [audio] Buffered Range: 0.032 - 39.999968
dash.all.js:11 [audio] Getting the request for time: 0
dash.all.js:11 [audio] Index for time 0 is 0
dash.all.js:11 loaded video:Media Segment:29.499843750000004 (200, 47ms, 7ms)
dash.all.js:11 Video Element Error: MEDIA_ERR_DECODE
dash.all.js:11 [video] stop
dash.all.js:11 [audio] stop
dash.all.js:11 Video Element Error: MEDIA_ERR_SRC_NOT_SUPPORTED
dash.all.js:11 <video> play
</video></video></video></video></video></video></video> -
How to play ffmpeg dash ?
30 janvier 2024, par Roshan OjhaI have following code to create chunk of video.


permission_classes=[AllowAny]
video_serializer = serializers.video_serializer

def process_video(self, video_path, video_id):
 # Set the path where the processed videos will be saved
 output_dir = os.path.join(settings.MEDIA_ROOT, 'processed_videos')

 # Create the output directory if it doesn't exist
 os.makedirs(output_dir, exist_ok=True)

 # Add your ffmpeg_streaming code here to process the video
 full_video_path = os.path.join(settings.MEDIA_ROOT, str(video_path))
 print(video_path)
 video = ffmpeg_streaming.input(full_video_path)
 print(video)

 # Add your ffmpeg_streaming code here to process the video
 _144p = Representation(Size(256, 144), Bitrate(95 * 1024, 64 * 1024))
 _240p = Representation(Size(426, 240), Bitrate(150 * 1024, 94 * 1024))
 _360p = Representation(Size(640, 360), Bitrate(276 * 1024, 128 * 1024))
 _480p = Representation(Size(854, 480), Bitrate(750 * 1024, 192 * 1024))
 _720p = Representation(Size(1280, 720), Bitrate(2048 * 1024, 320 * 1024))

 dash = video.dash(Formats.h264())
 dash.representations(_144p, _240p, _360p, _480p, _720p)
 dash.output(os.path.join(output_dir, f'dash-stream-{video_id}.mpd'))


def post(self,request):
 try:
 video_data = self.video_serializer(data=request.data)
 video_data.is_valid(raise_exception=True)
 data = video_data.validated_data

 video_instance = Video.objects.create(
 id = data.get('id'),
 saved_location = data.get('video')
 )
 video_instance.save()

 self.process_video(video_instance.saved_location, video_instance.id)
 return Response({"success":True})
 except Exception as e:
 return Response({"success":False,"message":str(e)})



This code is working well as it has created different chunk files as well as a
.mpd
file of a video insidemedia/processed_video
folder.

Then I wrote following code to stream that video using that
.mpd
folder.

def get (self,request,video_id):
 try:
 mpd_path = os.path.join(settings.MEDIA_ROOT, 'processed_videos', f'dash-stream-{video_id}.mpd')
 
 with open(mpd_path, 'rb') as f:
 mpd_content = f.read()
 response = HttpResponse(mpd_content, content_type='application/dash+xml')

 # Set Content-Disposition header to make the response downloadable
 response['Content-Disposition'] = f'attachment; filename="dash-stream-{video_id}.mpd"'
 
 # Optionally set Content-Length header to specify the size of the file
 response['Content-Length'] = len(mpd_content)
 
 return response
 
 except Exception as e:
 return Response({"success":False,"message":str(e)})



When I make get request to the api it returns content of
.mpd
as it is (i.e xml). When I used that api invlc network stream
, vlc couldn't play the video. But when I dragged.mpd
file directly to vlc, the video gets played with 144p only. I don't know where I got wrong inGET
. Please help.

-
MPEG-DASH MPD file not playing correctly
24 juin 2017, par CMOSSo I am working on generating a very simple MPD manifest file for my MPEG-DASH videos and I cannot figure out what is wrong. Here is my current manifest file
<?xml version="1.0" ?>
<mpd xmlns="urn:mpeg:dash:schema:mpd:2011" minbuffertime="PT1.500S" type="static" mediapresentationduration="PT0H9M21.795S" maxsegmentduration="PT0H0M1.001S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011">
<period>
<baseurl>https://mysite/uploads/sources/resolution_640/bitrate_1400/</baseurl>
<adaptationset mimetype="video/mp4">
<contentcomponent contenttype="video"></contentcomponent>
<representation bandwidth="1400000">
<segmentlist duration="119">
<initialization sourceurl="https://mysite/uploads/sources/resolution_640/bitrate_1400/640x360_1400Kpbs_0.mp4"></initialization>
<segmenturl media="https://mysite/uploads/sources/resolution_640/bitrate_1400/640x360_1400Kpbs_1.mp4"></segmenturl>
<segmenturl media="https://mysite/uploads/sources/resolution_640/bitrate_1400/640x360_1400Kpbs_2.mp4"></segmenturl>
<segmenturl media="https://mysite/uploads/sources/resolution_640/bitrate_1400/640x360_1400Kpbs_3.mp4"></segmenturl>
</segmentlist>
</representation>
</adaptationset>
</period>
</mpd>This MPD file validates using every validator I can find. The urls for the segments are obscured for security reasons but they are all open, public and viewable individually. But when I try to run the manifest file, depending on the player I get. "No supported source found within manifest" or simply nothing happens.
Any idea how this could be wrong ? I am currently using media url’s as absolute paths but I have also tried paths relative to the BaseURL with no luck. Any info on how I can make a very simple MPEG-Dash manifest structure would be great. I am using FFMPEG to split my video up into 150 frame segments. Thanks !