Recherche avancée

Médias (1)

Mot : - Tags -/iphone

Autres articles (47)

  • Librairies et logiciels spécifiques aux médias

    10 décembre 2010, par

    Pour un fonctionnement correct et optimal, plusieurs choses sont à prendre en considération.
    Il est important, après avoir installé apache2, mysql et php5, d’installer d’autres logiciels nécessaires dont les installations sont décrites dans les liens afférants. Un ensemble de librairies multimedias (x264, libtheora, libvpx) utilisées pour l’encodage et le décodage des vidéos et sons afin de supporter le plus grand nombre de fichiers possibles. Cf. : ce tutoriel ; FFMpeg avec le maximum de décodeurs et (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP 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 (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le 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 (7627)

  • Chrome times out on streaming FFMPEG output from ASP.NET Web Api

    3 août 2014, par Hayden McAfee

    I’ve got a unique problem here !

    UPDATE 2 So it turns out the development below is FALSE, the inconsistency of the bug made it seem like not closing the stream made it work... but in fact the same issue persists !

    UPDATE Interesting development ; if I comment out ffmpegBufferedIn.Close(); below, the entire stream always goes through fine... the request just never ends. What could be going on here ?

    I’m writing a web service that stores audio files in Azure Blob Storage, and converts them to MP3 live when requested through my ASP.NET Web API endpoint. I accomplish this by using ’DownloadToStream’ via the Azure Storage API, feeding that stream through the STDIN of an FFMPEG process, and sending the STDOUT stream as the request response.

    The block of code that does this looks like this :

    public HttpResponseMessage Get(Guid songid)
    {
       // This could take awhile.
       HttpContext.Current.Server.ScriptTimeout = 600;

       Process ffmpeg = new Process();
       ProcessStartInfo startinfo = new ProcessStartInfo(HostingEnvironment.MapPath("~/App_Data/executables/ffmpeg.exe"), "-i - -vn -ar 44100 -ac 2 -ab 192k -f mp3 - ");
       startinfo.RedirectStandardError = true;
       startinfo.RedirectStandardOutput = true;
       startinfo.RedirectStandardInput = true;
       startinfo.UseShellExecute = false;
       startinfo.CreateNoWindow = true;
       ffmpeg.StartInfo = startinfo;
       ffmpeg.ErrorDataReceived += ffmpeg_ErrorDataReceived;

       // Our response is a stream
       var response = Request.CreateResponse();
       response.StatusCode = HttpStatusCode.OK;

       // Retrieve storage account from connection string.
       CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
           CloudConfigurationManager.GetSetting("StorageConnectionString"));

       // Create the blob client.
       CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

       // Retrieve reference to a previously created container.
       CloudBlobContainer container = blobClient.GetContainerReference("songs");

       // Retrieve reference to a blob
       CloudBlockBlob blockBlob = container.GetBlockBlobReference(songid.ToString());

       ffmpeg.Start();
       ffmpeg.BeginErrorReadLine();

       // Buffer the streams
       var ffmpegBufferedIn = new BufferedStream(ffmpeg.StandardInput.BaseStream);
       var ffmpegBufferedOut = new BufferedStream(ffmpeg.StandardOutput.BaseStream);

       blockBlob.DownloadToStreamAsync(ffmpegBufferedIn).ContinueWith((t) => {
           ffmpegBufferedIn.Flush();
           ffmpegBufferedIn.Close();
       });

       response.Content = new StreamContent(ffmpegBufferedOut);
       response.Content.Headers.ContentType = new MediaTypeHeaderValue("audio/mpeg");

       System.Diagnostics.Debug.WriteLine("Returned response.");
       return response;
    }

    This works quite well in all browsers - all except for Chrome, which has an interesting way of buffering audio streams. Chrome will buffer the first 2 megabytes of a stream, then keep the connection open and wait until the user gets closer to playing the next segment of a file before consuming the rest of the stream. This should be fine - and for some songs it is. For others, I get this :

    Chrome error

    At first I thought this was due to some kind of timeout - But it happens at a different time and size for each file. It is consistent within about 15 seconds on the same songs, however. The output on the server side is normal - no exceptions thrown, and FFMpeg finishes encoding the song successfully.

    Here’s the server-side output of the above request :

    ffmpeg version N-64919-ga613257 Copyright (c) 2000-2014 the FFmpeg developers
     built on Jul 23 2014 00:27:32 with gcc 4.8.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-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --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-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-decklink --enable-zlib
     libavutil      52. 92.101 / 52. 92.101
     libavcodec     55. 69.100 / 55. 69.100
     libavformat    55. 48.101 / 55. 48.101
     libavdevice    55. 13.102 / 55. 13.102
     libavfilter     4. 11.102 /  4. 11.102
     libswscale      2.  6.100 /  2.  6.100
     libswresample   0. 19.100 /  0. 19.100
     libpostproc    52.  3.100 / 52.  3.100
    Input #0, mp3, from 'pipe:':
     Metadata:
       TSRC            : AUUM71001516
       title           : Sunlight
       track           : 2
       artist          : Bag Raiders
       copyright       : 2010 Modular Recordings
       genre           : Electronic
       album           : Bag Raiders
       album_artist    : Bag Raiders
       disc            : 1/1
       publisher       : Modular Recordings
       composer        : Chris Stracey/Jack Glass/Dan Black
       date            : 2010
     Duration: N/A, start: 0.000000, bitrate: 320 kb/s
       Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 320 kb/s
       Stream #0:1: Video: mjpeg, yuvj420p(pc, bt470bg), 600x600 [SAR 300:300 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
       Metadata:
         title           :
         comment         : Other
    Output #0, mp3, to 'pipe:':
     Metadata:
       TSRC            : AUUM71001516
       TIT2            : Sunlight
       TRCK            : 2
       TPE1            : Bag Raiders
       TCOP            : 2010 Modular Recordings
       TCON            : Electronic
       TALB            : Bag Raiders
       TPE2            : Bag Raiders
       TPOS            : 1/1
       TPUB            : Modular Recordings
       TCOM            : Chris Stracey/Jack Glass/Dan Black
       TDRL            : 2010
       TSSE            : Lavf55.48.101
       Stream #0:0: Audio: mp3 (libmp3lame), 44100 Hz, stereo, s16p, 192 kb/s
       Metadata:
         encoder         : Lavc55.69.100 libmp3lame
    Stream mapping:
     Stream #0:0 -> #0:0 (mp3 (native) -> mp3 (libmp3lame))
    size=       6kB time=00:00:00.21 bitrate= 227.6kbits/s    
    size=     102kB time=00:00:04.31 bitrate= 193.7kbits/s    
    size=     202kB time=00:00:08.56 bitrate= 192.9kbits/s    
    size=     341kB time=00:00:14.49 bitrate= 192.5kbits/s    
    size=     489kB time=00:00:20.82 bitrate= 192.4kbits/s    
    size=     642kB time=00:00:27.35 bitrate= 192.3kbits/s    
    size=     792kB time=00:00:33.75 bitrate= 192.2kbits/s    
    size=     950kB time=00:00:40.49 bitrate= 192.2kbits/s    
    size=    1106kB time=00:00:47.15 bitrate= 192.2kbits/s    
    size=    1258kB time=00:00:53.63 bitrate= 192.1kbits/s    
    size=    1415kB time=00:01:00.31 bitrate= 192.1kbits/s    
    size=    1563kB time=00:01:06.66 bitrate= 192.1kbits/s    
    size=    1710kB time=00:01:12.90 bitrate= 192.1kbits/s    
    size=    1857kB time=00:01:19.17 bitrate= 192.1kbits/s    
    size=    2008kB time=00:01:25.63 bitrate= 192.1kbits/s    
    size=    2162kB time=00:01:32.21 bitrate= 192.1kbits/s    
    size=    2299kB time=00:01:38.03 bitrate= 192.1kbits/s    
    size=    2457kB time=00:01:44.80 bitrate= 192.1kbits/s    
    size=    2600kB time=00:01:50.89 bitrate= 192.1kbits/s    
    size=    2755kB time=00:01:57.52 bitrate= 192.1kbits/s    
    size=    2864kB time=00:02:02.17 bitrate= 192.1kbits/s    
    size=    3022kB time=00:02:08.88 bitrate= 192.1kbits/s    
    size=    3172kB time=00:02:15.31 bitrate= 192.1kbits/s    
    size=    3284kB time=00:02:20.06 bitrate= 192.1kbits/s    
    size=    3385kB time=00:02:24.40 bitrate= 192.1kbits/s    
    size=    3529kB time=00:02:30.51 bitrate= 192.0kbits/s    
    size=    3687kB time=00:02:37.25 bitrate= 192.0kbits/s    
    size=    3838kB time=00:02:43.71 bitrate= 192.0kbits/s    
    size=    3988kB time=00:02:50.11 bitrate= 192.0kbits/s    
    size=    4138kB time=00:02:56.53 bitrate= 192.0kbits/s    
    size=    4279kB time=00:03:02.54 bitrate= 192.0kbits/s    
    size=    4408kB time=00:03:08.03 bitrate= 192.0kbits/s    
    size=    4544kB time=00:03:13.85 bitrate= 192.0kbits/s    
    size=    4683kB time=00:03:19.78 bitrate= 192.0kbits/s    
    size=    4805kB time=00:03:24.95 bitrate= 192.0kbits/s    
    size=    4939kB time=00:03:30.67 bitrate= 192.0kbits/s    
    size=    5049kB time=00:03:35.38 bitrate= 192.0kbits/s    
    size=    5141kB time=00:03:39.32 bitrate= 192.0kbits/s    
    size=    5263kB time=00:03:44.49 bitrate= 192.0kbits/s    
    size=    5372kB time=00:03:49.17 bitrate= 192.0kbits/s    
    The thread 0xb24 has exited with code 259 (0x103).
    size=    5436kB time=00:03:51.91 bitrate= 192.0kbits/s    
    size=    5509kB time=00:03:55.02 bitrate= 192.0kbits/s    
    size=    5657kB time=00:04:01.32 bitrate= 192.0kbits/s    
    size=    5702kB time=00:04:03.22 bitrate= 192.0kbits/s

    video:0kB audio:5701kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.005738%

    Any ideas ? I’m grateful for suggestions - I’ve been chasing this for a week now !

  • Vedanti and Max Sound vs. Google

    14 août 2014, par Multimedia Mike — Legal/Ethical

    Vedanti Systems Limited (VSL) and Max Sound Coporation filed a lawsuit against Google recently. Ordinarily, I wouldn’t care about corporate legal battles. However, this one interests me because it’s multimedia-related. I’m curious to know how coding technology patents might hold up in a real court case.

    Here’s the most entertaining complaint in the lawsuit :

    Despite Google’s well-publicized Code of Conduct — “Don’t be Evil” — which it explains is “about doing the right thing,” “following the law,” and “acting honorably,” Google, in fact, has an established pattern of conduct which is the exact opposite of its claimed piety.

    I wonder if this is the first known case in which Google has been sued over its long-obsoleted “Don’t be evil” mantra ?

    Researching The Plaintiffs

    I think I made a mistake by assuming this lawsuit might have merit. My first order of business was to see what the plaintiff organizations have produced. I have a strong feeling that these might be run of the mill patent trolls.

    VSL currently has a blank web page. Further, the Wayback Machine only has pages reaching back to 2011. The earliest page lists these claims against a plain black background (I’ve highlighted some of the more boisterous claims and the passages that make it appear that Vedanti doesn’t actually produce anything but is strictly an IP organization) :

    The inventions key :
    The patent and software reduced any data content, without compressing, up to a 97% total reduction of the data which also produces a lossless result. This physics based invention is often called the Holy Grail.

    Vedanti Systems Intellectual Property
    Our strategic IP portfolio is granted in all of the world’s largest technology development and use countries. A major value indemnification of our licensee products is the early date of invention filing and subsequent Issue. Vedanti IP has an intrinsic 20 year patent protection and valuation in royalties and licensing. The original data transmission art has no prior art against it.

    Vedanti Systems invented among other firsts, The Slice and Partitioning of Macroblocks within a RGB Tri level region in a frame to select or not, the pixel.

    Vedanti Systems invention is used in nearly every wireless chipset and handset in the world

    Our original pixel selection system revolutionized wireless handset communications. An example of this system “Slice” and “Macroblock Partitioning” is used throughout Satellite channel expansion, Wireless partitioning, Telecom – Video Conferencing, Surveillance Cameras, and 2010 developing Media applications.

    Vedanti Systems is a Semiconductor based software, applications, and IP Continuations Intellectual Property company.

    Let’s move onto the other plaintiff, Max Sound. They have a significantly more substantive website. They also have an Android app named Spins HD Audio, which appears to be little more than a music player based on the screenshots.

    Max Sound also has a stock ticker symbol : MAXD. Something clicked into place when I looked up their ticker symbol : While worth only a few pennies, it was worth a few more pennies after this lawsuit was announced, which might be one of the motivations behind the lawsuit.

    Here’s a trick I learned when I was looking for a new tech job last year : When I first look at a company’s website and am trying to figure out what they really do, I head straight to their jobs/careers page. A lot of corporate websites have way too much blathering corporatese that can be tough to cut through. But when I see what mix of talent and specific skills they are hoping to hire, that gives me a much better portrait of what the company does.

    The reason I bring this up is because this tech company doesn’t seem to have jobs/careers page.

    The Lawsuit
    The core complaint centers around Patent 7974339 : Optimized data transmission system and method. It was filed in July 2004 (or possibly as early as January 2002), issued in July 2011, and assigned (purchased ?) by Vedanti in May 2012. The lawsuit alleges that nearly everything Google has ever produced (or, more accurately, purchased) leverages the patented technology.

    The patent itself has 5 drawings. If you’ve ever seen a multimedia codec patent, or any whitepaper on a multimedia codec, you’ve seen these graphs before. E.g., “Raw pixels come in here -> some analysis happens here -> more analysis happens over here -> entropy coding -> final bitstream”. The text of a patent document isn’t meant to be particularly useful. I’ve tried to understand this stuff before and it never goes well. Skimming the text, I just see a blur of the words data, transmission, pixel, and matrix.

    So I read the complaint to try to figure out what this is all about. To summarize the storyline as narrated by the lawsuit, some inventors were unhappy with the state of video compression in 2001 and endeavored to create something better. So they did, and called it the VSL codec. This codec is so far undocumented on the MultimediaWiki, so it probably has yet to be seen “in the wild”. Good luck finding hard technical data on it now since searches for “VSL codec” are overwhelmed by articles about this lawsuit. Also, the original codec probably wasn’t called VSL because VSL is apparently an IP organization formed much later.

    Then, the protagonists of the lawsuit patented the codec. Then, years later, Google wanted to purchase a video codec that they could open source and use to supplant H.264.

    The complaint goes on to allege that in 2010, Google specifically contacted VSL to possibly license or acquire this mysterious VSL technology. Google was allegedly allowed to study the technology, eventually decided not to continue discussions, and shipped back the proprietary materials.

    Here’s where things get weird. When Google shipped back the materials, they allegedly shipped back a bunch of Post-It notes. The notes are alleged to contain a ton of incriminating evidence. The lawsuit claims that the notes contained such tidbits as :

    • Google was concerned that its infringement could be considered “recklessness” (the standard applicable to willful infringement) ;
    • Google personnel should “try” to destroy incriminating emails ;
    • Google should consider a “design around” because it was facing a “risk of litigation.”

    Actually, given Google’s acquisition of On2, I can totally believe that last one (On2’s codecs have famously contained a lot of weirdness which is commonly suspected to be attributable to designing around known patents).

    Anyway, a lot of this case seems to hinge on the authenticity of these Post-It notes :

    “65. The Post-It notes are unequivocal evidence of Google’s knowledge of the ’339 Patent and infringement by Defendants”

    I wish I could find a stock photo of a stack of Post-It notes in an evidence bag.

    I’ve worked at big technology companies. Big tech companies these days are very diligent about indoctrinating employees about IP liability issues. The reason this Post-It situation strikes me as odd is because the alleged contents of the notes basically outline everything the corporate lawyers tell you NOT to do.

    Analysis
    I’m trying to determine what specific algorithms and coding techniques. I guess I was expecting to see a specific claim that, “Our patent outlines this specific coding technique and here is unequivocal proof that Google A) uses the same technique, and B) specifically did so after looking at our patent.” I didn’t find that (well, a bit of part B, c.f., the Post-It note debacle), but maybe that’s not how these patent lawsuits operate. I’ve never kept up before.

    Maybe it’s just a patent troll. Maybe it’s for the stock bump. I’m expecting to see pump-n-dump stock spam featuring the stock symbol MAXD anytime now.

    I’ve never been interested in following a lawsuit case carefully before. I suddenly find myself wondering if I can subscribe to the RSS feed for this case ? Too much to hope for. But I found this item through Pando and maybe they’ll stay on top of it.

  • Evolution #3283 (Nouveau) : jquery.autocomplete

    10 octobre 2014, par Franck Dalot

    Bonsoir
    Le plug utilise jQuery Autocomplete plugin 1.1, cette version semble ne plus avoir de support.
    http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete
    http://www.learningjquery.com/2010/06/autocomplete-migration-guide

    Sont successeur semble être :
    http://jqueryui.com/autocomplete
    Pour spip 3.1, ne faudrait il pas faire une mise à jour du plug ?
    Franck