
Recherche avancée
Médias (1)
-
Sintel MP4 Surround 5.1 Full
13 mai 2011, par
Mis à jour : Février 2012
Langue : English
Type : Video
Autres articles (73)
-
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...) -
Librairies et binaires spécifiques au traitement vidéo et sonore
31 janvier 2010, parLes logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
Binaires complémentaires et facultatifs flvtool2 : (...) -
De l’upload à la vidéo finale [version standalone]
31 janvier 2010, parLe chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
Upload et récupération d’informations de la vidéo source
Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)
Sur d’autres sites (8268)
-
simple_idct : x86 : Drop disabled IDCT implementation
1er août 2016, par Diego Biurrun -
Transcoding fMP4 to HLS while writing on iOS using FFmpeg
29 avril 2017, par bclymerTL ;DR
I want to convert fMP4 fragments to TS segments (for HLS) as the fragments are being written using FFmpeg on an iOS device.
Why ?
I’m trying to achieve live uploading on iOS while maintaining a seamless, HD copy locally.
What I’ve tried
-
Rolling
AVAssetWriter
s where each writes for 8 seconds, then concating the MP4s together via FFmpeg.What went wrong - There are blips in the audio and video at times. I’ve identified 3 reasons for this.
1) Priming frames for audio written by the AAC encoder creating gaps.
2) Since video frames are 33.33ms long, and audio frames 0.022ms long, it’s possible for them to not line up at the end of a file.
3) The lack of frame accurate encoding present on Mac OS, but not available for iOS Details Here
-
FFmpeg muxing a large video only MP4 file with raw audio into TS segments. The work was based off the Kickflip SDK
What Went Wrong - Every once in a while an audio only file would get uploaded, with no video whatsoever. Never able to reproduce it in-house, but it was pretty upsetting to our users when they didn’t record what they thought they did. There were also issues with accurate seeking on the final segments, almost like the TS segments were incorrectly time stamped.
What I’m thinking now
Apple was pushing fMP4 at WWDC this year (2016) and I hadn’t looked into it much at all before that. Since an fMP4 file can be read, and played while it’s being written, I thought that it would be possible for FFmpeg to transcode the file as it’s being written as well, as long as we hold off sending the bytes to FFmpeg until each fragment within the file is finished.
However, I’m not familiar enough with the FFmpeg C API, I only used it briefly within attempt #2.
What I need from you
- Is this a feasible solution ? Is anybody familiar enough with fMP4 to know if I can actually accomplish this ?
- How will I know that
AVFoundation
has finished writing a fragment within the file so that I can pipe it into FFmpeg ? - How can I take data from a file on disk, chunk at a time, pass it into FFmpeg and have it spit out TS segments ?
-
-
dashjs can't find initialization segment on manifest.mpd
30 avril 2016, par Abelardo MendozaI am following this tutorial to stream a WebM. I have no issues running the ffmpeg commands to generate the videos/audio/manifest files but when I try to run it locally, there’s no video or audio at all and dashjs floods the console with :
Searching for initialization.
Start searching for initialization.
Perform init search: http://localhost:8080/video_1280x720_500k.webm
Perform SIDX load: http://localhost:8080/video_640x360_750k.webm
Perform SIDX load: http://localhost:8080/video_1280x720_500k.webmWriting that to console until I stop the server. I have tried using other mpd files such as this, which is used on the dashjs quickstart and it plays the video without any problems.
I used this guide to install the latest version of ffmpeg on Ubuntu 14.04 LTS :
ffmpeg version N-79688-g3cb3ddd Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.3.0 (Ubuntu 5.3.0-3ubuntu1~14.04) 20151204
configuration: --prefix=/home/ab/cpp/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/ab/cpp/ffmpeg_build/include --extra-ldflags=-L/home/ab/cpp/ffmpeg/lib --bindir=/home/ab/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
libavutil 55. 23.100 / 55. 23.100
libavcodec 57. 38.100 / 57. 38.100
libavformat 57. 34.103 / 57. 34.103
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 44.100 / 6. 44.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100When running on ffmpeg :
ffmpeg \
-f webm_dash_manifest -i video_160x90_250k.webm \
-f webm_dash_manifest -i video_320x180_500k.webm \
-f webm_dash_manifest -i video_640x360_750k.webm \
-f webm_dash_manifest -i video_640x360_1000k.webm \
-f webm_dash_manifest -i video_1280x720_500k.webm \
-f webm_dash_manifest -i audio_128k.webm \
-c copy -map 0 -map 1 -map 2 -map 3 -map 4 -map 5 \
-f webm_dash_manifest \
-adaptation_sets "id=0,streams=0,1,2,3,4 id=1,streams=5" \
manifest.mpdIt generates the following manifest.mpd :
<?xml version="1.0" encoding="UTF-8"?>
<mpd xmlns="urn:mpeg:DASH:schema:MPD:2011" type="static" mediapresentationduration="PT117.726S" minbuffertime="PT1S" profiles="urn:webm:dash:profile:webm-on-demand:2012">
<period start="PT0S" duration="PT117.726S">
<adaptationset mimetype="video/webm" codecs="vp9" lang="eng" bitstreamswitching="true" subsegmentalignment="true" subsegmentstartswithsap="1">
<representation bandwidth="198155" width="160" height="90">
<baseurl>video_160x90_250k.webm</baseurl>
<segmentbase indexrange="2007834-2008211">
<initialization range="0-437"></initialization>
</segmentbase>
</representation>
<representation bandwidth="459264" width="320" height="180">
<baseurl>video_320x180_500k.webm</baseurl>
<segmentbase indexrange="4459996-4460374">
<initialization range="0-439"></initialization>
</segmentbase>
</representation>
<representation bandwidth="718495" width="640" height="360">
<baseurl>video_640x360_750k.webm</baseurl>
<segmentbase indexrange="6614036-6614414">
<initialization range="0-441"></initialization>
</segmentbase>
</representation>
<representation bandwidth="931445" width="640" height="360">
<baseurl>video_640x360_1000k.webm</baseurl>
<segmentbase indexrange="8309082-8309460">
<initialization range="0-441"></initialization>
</segmentbase>
</representation>
<representation bandwidth="821274" width="1280" height="720">
<baseurl>video_1280x720_500k.webm</baseurl>
<segmentbase indexrange="8728812-8729190">
<initialization range="0-441"></initialization>
</segmentbase>
</representation>
</adaptationset>
<adaptationset mimetype="audio/webm" codecs="vorbis" lang="eng" audiosamplingrate="44100" bitstreamswitching="true" subsegmentalignment="true" subsegmentstartswithsap="1">
<representation bandwidth="107104">
<baseurl>audio_128k.webm</baseurl>
<segmentbase indexrange="1538710-1539184">
<initialization range="0-4112"></initialization>
</segmentbase>
</representation>
</adaptationset>
</period>
</mpd>The index.html has a few changes because dash.js changed the way the player gets initialized.
<code class="echappe-js"><script src="http://cdn.dashjs.org/latest/dash.all.debug.js"></script>And here is Chromium’s log file. I’m converting this webm from this site.
If I missed out any other relevant information or if anyone can guide me into the right direction, please let me know.
Edit :
Like Will Law mentioned, using the Shaka Player worked without any issues with my current manifest. Hope this helps anyone else.