Jitter in video streaming on Airplay

I bought Apple TV recently mainly for the airplay feature. I already have a few streaming boxes for the TV apps. I have a 802.11n cable modem + wireless router (Arris TG852G) type device. I followed the recommended settings on http://support.apple.com/kb/TS4215 but I still see a jitter on video playback on my TV when I set my Macbook Pro for airplay mirrong. It is quite annoying and I have to resort to connecting HDMI cable directly to my MacBook.
Yesterday I borrowed a linksys router that supports 802.11 ac and has dual channel support for (2.4 GHz and 5.0 GHz). For testing purpose I tried 1080p netflix streaming with intense action scenes of Avengers and it worked flawlessly. I wonder if there is any tweaking I can to my Xfinity home gateway before spending another $100 to buy a router with 802.11 ac support.
I haven't done an intense test and I am not sure if video streaming issues may come back even with 802.11 ac router. I have about a couple of days to return Apple TV. Has someone tried Airplay on similar set up like mine (MBP paired with Apple TV on Xfinity home gateway with 802.11 n) and found issues ? Could it be a faulty Apple TV device?

Hi Chris,
thanks for your tip. I didn't get around to trying it, as I have just solved the problem:
Unless I misunderstand how things are supposed to work, I think I also might have found a bug (or at a minimum an usability issue):
When I talked about having relaxed all the local storage settings in my original post, I meant that in the System Preferences / Flash Player / Storage pane I had set "Allow sites to save information on this computer". I also had done some experimention around the "Ask me" and "Settings by Site" options - all without success. I had navigated to that pane by right-clicking on "Global Settings" from the non-working video players.
However, just now I discovered the following: When I navigate to http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager03.htm l (the embedded Global Storage Settings Panel) I found that in fact "Allow third-party Flash content to store date on your computer" was disabled all along!
So effectively, the System Preferences Pane and the Global Settings Manager were not in sync / had conflicting settings and it looks like the Global Settings Manager took precedence. When I enabled local storage in the Global settings manager, things started working immediately.
This is extremely easily reproducable by the way: Just change some settings in the Global Settings Manager and then right click "Global Settings" within it and the Preference Pane coming up will be in conflict with the settings manager.
(Even if this is somehow by design, its quite confusing)
Hope this helps future readers with the same issue. Also, this is an issue in 11.3 Beta 2, so maybe your teams can still fix this for 11.3
Thanks,
Jens

Similar Messages

  • Video streaming from iPhone to Apple TV only plays the sound.  How can I fix this?

    Video Streaming using AirPlay from iPhone(5s) to Apple TV only plays the sound.   The TV screen goes blank when I choose AirPlay but only the sound plays.   How can I fix this?

    Is this using a specific app or apps?  Not all apps support video out over AirPlay, the option is up to the app developer.

  • Apple TV freezes videos stream as soon as it goes fullscreen on youtube...

    Hi,
    My Apple TV used to work fine until yesterday, it suddenly started to freeze the video stream on airplay mirroring using youtube and other streaming sites (both on tv and on my devices, I've used 2 different Iphones and an Ipad and it's all the same).
    None of the rebooting, resetting, Airplay on/off  solution has worked. Also tried restarting all my devices, my router etc...
    It's connected to the internet via an ethernet cable so no wifi issues either.
    It airplays the device screens ok and I can see my own photos or videos just fine but when I go to youtube or other video streaming sites (which is pretty much the only reason I USE it !) I can browse and choose my videos but as soon as I play them it goes on fullscreen mode and starts to buffer endlessly.  Then  the message "cannot play content, try again later" pops up and quickly disappears.
    As soon as I stop Airplay though, the video resumes on my devices...
    I think this happened after the last update...not sure though
    Any ideas?

    So there could indeed be wifi issues then.
    Intermittent problems are often a result of interference. Interference can be caused by other networks in the neighbourhood or from household electrical items.
    You can download and install iStumbler (NetStumbler for windows users) to help you see which channels are used by neighbouring networks so that you can avoid them, but iStumbler will not see household items.
    Refer to your router manual for instructions on changing your wifi channel or adjusting your multicast rate.
    There are other types of problems that can affect networks, but this is by far the most common, hence worth mentioning first. Networks that have inherent issues can be seen to work differently with different versions of the same software. You might also try moving the Apple TV away from other electrical equipment.
    The following article(s) may help you.
    Troubleshooting Wi-Fi networks and connections
    Recommended Wi-Fi settings
    Sources of Interference
    Wifi Diagnostic Software (for Mac users)
    You may also find some help on this page, where I’ve collected some of the more unusual solutions to network issues.

  • Why is local video streaming to Apple TV jerky?

    Video streaming to Apple TV (v 3) has always been smooth. No matter what the online source -- from YouTube to Netflix -- the video is consistently good. Video streamed from Macs, though, is jerky to the point of unwatchable. Even when I stream it from a a Mac connected by ethernet with wi-fi off, the result is unwatchable.   I cannot think what the problem could be. My wi-fi signal is strong (from two bridged Apple Extreme units) so when I stream wirelessly network shouldn’t be the problem, and I’m just a few feet from both ATV and AE.

    Seems that if it's network related, this is going to be a hard nut to crack.  I assume you can bring your Airport Extreme in to be checked out, but if you are using another brand of wireless router, you won't get much help there.  I know wireless interference can play havoc with signals and one of the things I'd check out with some sniffer software is that possibility.  Just sitting here in my kitchen I can see signals from 15 different wireless routers in my neighborhood.  Using 2.4 GHz channel selection can make all the difference between good and poor performance.  Granted those 15 access points in many cases aren't close enough to interfere, a couple are and I've seen performance on my Macbook Pro suck sometime because a close by wireless router pops onto or close to the same channel I'm on.  That's a lot why I bought an Airport Extreme and use the 5 GHz side as much as possible.  In the case of my Apple TV and all my Apple devices, I run on the 5GHz side.  Signal strength is good and when I get the slow downs when using Airplay, the reboots of the streaming devices usually resolve the issues.

  • What is the best way watch video streamed to my iMac on my TV?

    Hi,
    I'm trying to figure out the best way to watch video streamed to my iMac on my TV.  Or to watch a dvd inserted in my iMac on my TV.
    My iMac has a Thunderbolt port (among other things).
    My TV has HDMI inputs as well as a digital optical sound input.
    I'd like to know the best way to do this both wired and wirelessly.  (And if it would make sense to use an Apple TV
    Thanks for your help!

    Welcome to Apple Support Communities
    An option is to buy a Mini DisplayPort to HDMI adapter and a HDMI adapter, or a Mini DisplayPort to HDMI cable. See > http://support.apple.com/kb/ht4241
    Apart from that, you can get an Apple TV and stream the computer to the Apple TV through AirPlay Mirroring > http://support.apple.com/kb/HT5404

  • AAC audio causes stuttering in live video stream playback

    I am using the Spark VideoDisplay component and setting the mx_internal bufferTime to 0.  (videoDisplay.mx_internal::videoPlayer.bufferTime = 0)  I am doing this because I need to have the absolute minimum delay in the live video stream.  I am broadcasting video files as a live stream using ffmpeg, through Red5, then to the client.  ffmpeg is not re-encoding the video or audio.  I am using h.264 video format.  I have tried encoding videos using Adobe Media Encoder and ffmpeg.
    When I have a video stream only and no audio stream this works fine, but when I have an AAC audio channel with the video, I frequently see the video jitter badly.  It looks like the video is quickly going forward and back a few frames.  When this problem occurs it will go on for some time and sometimes eventualy starts playing normal.  When the video is playing normally the audio sounds fine.  When I play the videos in a regular media player (like VLC) they play and sound fine.  Also if I use an mp3 audio channel I don't see the jittering
    Does anyone have any idea what the cause of this problem might be or how it can be resolved?

    Ah, yes, I am not serving high-def video myself. H264 is probably better, but my understanding is that you need hardware acceleration to get good performance from it (again, not an expert on the topic, that's just what my understanding has been...)
    This document [pdf] may have some usefull info on choosing an optimal encoding for your needs.
    (Or you can see the full lecuture here [Adobe TV])

  • Videos not organizing AirPlay shows correctly

    Hello,
    I have been using Videos on my iPad to watch shows/movies from my iMac on my home network streamed via AirPlay.  The issue I am having is that I cannot seem to figure out how to get Videos to organize seasons of shows properly. When I select the same shows on my Apple TV 2, I am able to select the shows based on their names and then season. In Videos, for some reason, only the season is displayed. It is a confusing guessing game when the show title is not displayed and you have 5 different selections that say "Season 1", etc, without note made to what show it is from. Is there any way to make Videos sort the shows by their title and their season?

    Thanks Jim for pointing in the right direction to fix this.
    It seems the new ios is using a different tag to sort the shows. The problem I had was similar to yours - all the shows I currently had were all from disks I had ripped myself using handbrake, and not from the itunes store.
    I compared the tags (in the get info menu option) of the shows I'd ripped against the tags in store bought shows, and added info to the tags under the sorting tab, specifically the sort show field. I think that's the one that makes the difference, although I added a bunch more of them, so I'm not sure. Delete the old version from your phone, sync the new version to the phone (or you can change the tags right on the phone) and the sorting is fixed!

  • No video stream when calling 3rd party endpoint from Jabber client

    I use my own H323 client based on the H323Plus open source. It works very well with VCS and all endpoints we tried (a dozen or so from every vendor). We have a problem with Jabber Video though, across all versions from MOVI to 4.4.3. When my own client calls Jabber everything works as it should. However, when Jabber calls my client then (1) it takes up to a minute for Jabber to display incoming video and (2) Jabber does not create outgoing video stream. This behavior is 100%  reproducible across all PCs we tried. Jabber is registered with either VCS Starter Pack or VCS Control, sofwtare version 6.1 in both cases. We do not use provisioning at this time.
    In Jabber logs there is a unclear hint about insufficient resources (bandwidth?) for the video stream. VCS configuration is fine (it works with all other clients like e20) and I do not see anything useful in VCS logs.
    To narrow the discussion, this is NOT a firewall, client camera or driver, OS misconfiguration or any other external issue. It is Jabber video having problem negotiating capabilities and/or resources but only it initiates the call. Where should I look for a solution?

    I was afraid this will end this way. I hoped you might have had such a case solved already :-).
    Audio works fine, no problem at all. The video packets are not sent from my client to Jabber while in the 1 minute wait; the stream from Jabber  is not even started. I still think I need Wireshark to decode H225 traffic. Good idea with the interworking log - I was too lazy to go the OS layer. As you surely know, only 2 of the VCS logs are available from the Web interface.
    thanks for your help!

  • Can I see video stream from a website on my tv from my desktop with apple tv

    I am trying to watch a weekly video stream from a website using my Mac desktop on my tv with Apple Tv..can I do this?

    If your computer is a Mac and new enough (2011+) then maybe.  See required specs here:
    http://www.apple.com/uk/osx/specs/
    If you have an older Mac or Windows machine try airparrot.
    AC*

  • HT3819 video stream from amazon prime to my TV

    i want to video stream from amazon prime to my TV  via my ipad, mac book using my apple TV device..

    there is no reason to get rid of Apple devices, not when a Chromecast, Roku, or FireTV can be acquired so cheaply. 
    This is a true statement, but this is a bad option in the long term since your content will be split between different sources, DRM rules, apps, access options, etc.  You are going to constantly be running into issues were you want to watch a show that is not available on the device (phone, tablet, etc) you are on.  I share "Disgusted_with_apple" frustrations in that Apple has not updated in three years now leaving Amazon FireTV and others with better interfaces and features but having my content locked into Apple's DRM.
    Apple was really first to market with a viable TV interface device, and has completely turned the market over to its competitors just by not showing up.  And now ATV can not play content, or provide features that ALL of the competitors have.   I recently bought an Amazon FireTV and love it.  The only advantage Apple has left is the iTunes Store still has more content, but that is not likely to last.

  • SpryTabbedPanel: Flash player in tabs do not play video streams

    Note: I am a complete noob (no experience with Javascript and rudimentary experience with htlm/css). Please be patient (I hope that this is the correct forum for this) and know that I am appreciative of any help or solution that anyone can provide.
    Using Dreamweaver CS4 on Mac OS 10.5.8
    We recently switched all of our streaming servers from Windows Media (good riddance) to Flash Media Server 3.5 (now getting awesome H.264 quality in comparison).
    I was asked to re-design this webpage with the aim of re-organizing the content so that it is more accessible:
    http://www.librarymedia.net/VideoGallery.html
    We used Adobe's test page for our first page:
    http://www.librarymedia.net/flash/videoplayer.html?source=rtmp://63.116.232.4/live/livestr eam&type=live&idx=10
    This was meant as a temporary page to get us started, and as you can see, it needs work but at least it works.
    I've been working the the final version of this page. My boss wants a tabbed web page with links to our video streams (tab for each category of streams).
    This is what I have so far:
    http://www.librarymedia.net/Flash2/videoplayer2.html?source=rtmp://63.116.232.4/live/lives tream&type=live&idx=10
    I realize that I had several options before building this. One, I could have made a separate page for each tab and linked them with a tab menu. In hindsight, this might have been a better option since I could have just copied the working page that we already have for each tab. Or I could have done what I have tried to do: to use Dreamweaver's SpryTabbedPanel to make the tabs and insert a Flash player with links into each tab.
    The problem:
    1. The streams do not play. The player says "initializing" and then "please enter a stream name and play". Please note that I used SpryURLutils to get each link to open in the appropriate tab.
    2. After reading about the benefits of external vs. inline javascript, I took all of the inline javascript that was contained in Adobe's sample page and placed it in an external file. I tried placing the javascript back into the source code (inline), but this did not fix the problem. I guess there is a Javascript problem or I need extra Javascript code to get this to work.  The javascript code is below. Use view source in your web browser to see source code. Please let me know if I need to provide more information.
    Thanks.
    // (C) Copyright 2008 Adobe Systems Incorporated. All Rights Reserved.
    // NOTICE:  Adobe permits you to use, modify, and distribute this file in accordance with the terms of the Adobe license agreement accompanying it. 
    // If you have received this file from a source other than Adobe, then your use, modification, or distribution of it requires the prior
    // written permission of Adobe.
    // THIS CODE AND INFORMATION IS PROVIDED "AS-IS" WITHOUT WARRANTY OF
    // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
    // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
    // PARTICULAR PURPOSE.
    // THIS CODE IS NOT SUPPORTED BY Adobe Systems Incorporated.
    // Version check based upon the values defined in globals
                                                var hasRequestedVersion = DetectFlashVer(10, 0, 0);
                                                if(!hasRequestedVersion)
                                                    var div = document.getElementById("flashcontent");
                                                    div.innerHTML = '<a href="http://www.adobe.com/go/getflashplayer/" style="color:black"><img src="images/ERROR_getFlashPlayer.gif" width="641" height="377" /></a>';
                                                else{
                                                        AC_FL_RunContent(
                                                            "src", "swfs/videoPlayer",
                                                            "width", "640",
                                                            "height", "377",
                                                            "id", "videoPlayer",
                                                            "quality", "high",
                                                            "bgcolor", "#000000",
                                                            "name", "videoPlayer",
                                                            "allowfullscreen","true",
                                                            "type", "application/x-shockwave-flash",
                                                            "pluginspage", "http://www.adobe.com/go/getflashplayer",
                                                            "flashvars", flashVars
                                          // -->  
    // Javascript in original page
    function MM_preloadImages() { //v3.0
      var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
        if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    function changeImages() {
        if (document.images && (preloadFlag == true)) {
            for (var i=0; i<changeImages.arguments.length; i+=2) {
                document [changeImages.arguments[i]].src = changeImages.arguments[i+1];
    var preloadFlag = false;
    function preloadImages() {
        if (document.images) {
            navi_01_over = newImage("images/button_dynamic_up.gif");
            navi_02_over = newImage("images/button_samples_up.gif");
            navi_03_over = newImage("images/button_interactive.gif");
            preloadFlag = true;
    function changetab(obj, obj2, obj3, left1, left2, left3, nav1, nav2, nav3){
        document.getElementById(obj).style.display = 'block';
        document.getElementById(obj2).style.display = 'none';
        document.getElementById(obj3).style.display = 'none';
        document.getElementById(left1).style.display = 'block';
        document.getElementById(left2).style.display = 'none';
        document.getElementById(left3).style.display = 'none';
        document.getElementById(nav1).src = "images/" + nav1 + "_up.gif";
        document.getElementById(nav2).src = "images/" + nav2 + "_down.gif";
        document.getElementById(nav3).src = "images/" + nav3 + "_down.gif";
    function tabout(obj, nav){
        if (document.getElementById(obj).style.display == 'block'){
            document.getElementById(nav).src = "images/" + nav + "_up.gif";
        else{
            document.getElementById(nav).src = "images/" + nav + "_down.gif";
    function tabover(obj){
        document.getElementById(obj).src = "images/" + obj + "_up.gif";
    // Functionality
        <script language="javascript">
            var queryParameters = new Array();
            var flashVars = "";
            var tag = "";
            var url = "";
            window.onload = function ()
                for(var i=1 ; i<=10;i++)
                    var ids = String("sel"+i.toString());
                    document.getElementById( ids ).style.visibility = "hidden";
                    document.getElementById( ids ).className = "style76";
                // mark the entry for that index
                if(queryParameters['idx'] != "")
                    document.getElementById("td" + queryParameters['idx'] ).className = "style75";
                    document.getElementById("sel" + queryParameters['idx'] ).style.visibility = "visible";
            function initialise()
                function getUrlParam( name )
                      name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
                      var regexS = "[\\?&]"+name+"=([^&#]*)";
                      var regex = new RegExp( regexS );
                      var results = regex.exec( window.location.href );
                      if( results == null )
                            return "";
                      else
                            return unescape( results[1] );
                queryParameters['source'] = getUrlParam('source');
                queryParameters['type'] = getUrlParam('type');
                queryParameters['idx'] = getUrlParam('idx');
                   flashVars += "&videoWidth=";
                flashVars += 0;
                flashVars += "&videoHeight=";
                flashVars += 0;
                flashVars += "&dsControl=";
                flashVars += unescape("manual");
                flashVars += "&dsSensitivity=";
                flashVars += 100;
                flashVars += "&serverURL=";
                flashVars += queryParameters['source'];
                flashVars += "&DS_Status=";
                flashVars += "true";
                flashVars += "&streamType=";
                flashVars += queryParameters['type'];
                flashVars += "&autoStart=";
                flashVars += unescape("true");
                tag = "&lt;object width='640' height='377' id='videoPlayer' name='videoPlayer' type='application/x-shockwave-flash' classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' &gt;&lt;param name='movie' value='swfs/videoPlayer.swf' /&gt; &lt;param name='quality' value='high' /&gt; &lt;param name='bgcolor' value='#000000' /&gt; &lt;param name='allowfullscreen' value='true' /&gt; &lt;param name='flashvars' value= '"+                   
                flashVars+"'/&gt;&lt;embed src='swfs/videoPlayer.swf' width='640' height='377' id='videoPlayer' quality='high' bgcolor='#000000' name='videoPlayer' allowfullscreen='true' pluginspage='http://www.adobe.com/go/getflashplayer'   flashvars='"+ flashVars +"' type='application/x-shockwave-flash'&gt; &lt;/embed&gt;&lt;/object&gt;";
            function playStream()
                var url = "source=" + document.getElementById('inputURL').value;
                var type;
                if(document.getElementById('vodCheckbox').checked==true)
                    type="vod";
                else
                    type="live";
                url += ("&type=" + type);
                document.getElementById('playBtn').href="videoplayer.html?" + url;
            function checkbox(type)
                if(type=="vod")
                    if(document.getElementById('liveCheckbox').checked==true)
                        document.getElementById('liveCheckbox').checked=false;
                if(type=="live")
                    if(document.getElementById('vodCheckbox').checked==true)
                        document.getElementById('vodCheckbox').checked=false;
            initialise();

    Should I have posted this in the Spry forum instead? My apologies if this is the wrong forum.
    >There is a sample application of the code included with the zip file  which shows how to implement it.
    The sample doesn't really tell me what I need to do to the code to make it work (I do not know javascript), and unfortunately, I have not found any helpful instructions/documentation online. You've given me the answer, I just don't know enough to implement it. This is what I've done:
    1. Placed the FAVideo.js file in my site folder and linked it to the page: <script src="FAVideo.js" type="text/javascript"></script>
    2. I added the following code (taken from the SimpleDemo.html example inside the FAVideo folder). My comments in bold. Page at
    http://www.librarymedia.net/Flash2/videoplayer2.html?source=rtmp://63.116.232.6/vod/mp4:Ol ympics2010_640x480.mov
             <! To the <body> section:-->
    <body onLoad="">
        <div id="divOne"></div>
    <!-Do I have to place the entire page within the "divOne" div (or just the section containing the tabs) in order for the javascript to work?-->
             <!-In the <head> section: -->
       <script type="text/javascript">
            playerOne = new FAVideo("divOne", "TabbedPanels1", "demo_video.flv",0,0,{ autoLoad:true, autoPlay:true });
        </script>
    <!- I noticed that the body code added a div id called "divOne", so I added the "TabbedPanels1" div id to the above code thinking that this would apply the javascript code to all of the tabs. Dreamweaver adds <div id="TabbedPanels1" class="TabbedPanels"> to the page when you insert the tabbed menu, so I'm thinking the javascript has to point to either one of those for it to work. The "demo_video.flv",0,0 code is probably unneccesary, right? As you can see, I'm completely clueless. -->
        <script>
            playerOne.addEventListener("playheadUpdate",this,myHandler);
            playerOne.removeEventListener("playheadUpdate",this,myHandler);
            function myHandler() {
                //alert("eh");
        </script>
    </body>
    Once again, thanks for your help.

  • CTD bug in simple video streaming applet.

    I'm trying to write a simple applet to use JMF to allow an end-user to view a video stream that's being served up by VLC. It doesn't have to look immensely pretty (in fact, streamlined is what I want most). I swiped some code from the jicyshout project (http://jicyshout.sourceforge.net) which handles streaming MP3s, and borrowed a framework for an applet from one of Sun's example applets for the JMF.
    Here's my code so far:
    ** begin file SimpleVideoDataSource.java **
    import java.lang.String;
    import java.net.*;
    import java.io.*;
    import java.util.Properties;
    import javax.media.*;
    import javax.media.protocol.*;
    /* The SeekableStream and DataSource tweaks are based on the code from
    * jicyshout (jicyshout.sourcefourge.net), which was written by Chris Adamson.
    * The code was simplified (no need for mp3 metadata here), cleaned up, then
    * extended for our puposes.
    * This is a DataSource using a SeekableStream suitable for
    * streaming video using the default parser supplied by JMF.
    public class SimpleVideoDataSource extends PullDataSource {
    protected MediaLocator myML;
    protected SeekableInputStream[] seekStreams;
    protected URLConnection urlConnection;
    // Constructor (trivial).
    public SimpleVideoDataSource (MediaLocator ml) throws MalformedURLException {
    super ();
    myML = ml;
    URL url = ml.getURL();
    public void connect () throws IOException {
    try {
    URL url = myML.getURL();
    urlConnection = url.openConnection();
    // Make the stream seekable, so that the JMF parser can try to parse it (instead
    // of throwing up).
    InputStream videoStream = urlConnection.getInputStream();
    seekStreams = new SeekableInputStream[1];
    seekStreams[0] = new SeekableInputStream(videoStream);
    } catch (MalformedURLException murle) {
    throw new IOException ("Malformed URL: " + murle.getMessage());
    } catch (ArrayIndexOutOfBoundsException aioobe) {
    fatalError("Array Index OOB: " + aioobe);
    // Closes up InputStream.
    public void disconnect () {
    try {
    seekStreams[0].close();
    } catch (IOException ioe) {
    System.out.println ("Can't close stream. Ew?");
    ioe.printStackTrace();
    // Returns just what it says.
    public String getContentType () {
    return "video.mpeg";
    // Does nothing, since this is a stream pulled from PullSourceStream.
    public void start () {
    // Ditto.
    public void stop () {
    // Returns a one-member array with the SeekableInputStream.
    public PullSourceStream[] getStreams () {
    try {
    // **** This seems to be the problem. ****
    if (seekStreams != null) {
    return seekStreams;
    } else {
    fatalError("sourceStreams was null! Bad kitty!");
    return seekStreams;
    } catch (Exception e) {
    fatalError("Error in getStreams(): " + e);
    return seekStreams;
    // Duration abstract stuff. Since this is a theoretically endless stream...
    public Time getDuration () {
    return DataSource.DURATION_UNBOUNDED;
    // Controls abstract stuff. No controls supported here!
    public Object getControl (String controlName) {
    return null;
    public Object[] getControls () {
    return null;
    void fatalError (String deathKnell) {
    System.err.println(":[ Fatal Error ]: - " + deathKnell);
    throw new Error(deathKnell);
    ** end file SimpleVideoDataSource.java **
    ** begin file SeekableInputStream.java **
    import java.lang.String;
    import java.net.*;
    import java.io.*;
    import java.util.Properties;
    import javax.media.*;
    import javax.media.protocol.*;
    /* The SeekableStream and DataSource tweaks are based on the code from
    * jicyshout (jicyshout.sourcefourge.net), which was written by Chris Adamson.
    * The code was simplified (no need for mp3 metadata here), cleaned up, then
    * extended for our puposes.
    /* This is an implementation of a SeekableStream which extends a
    * BufferedInputStream to basically fake JMF into thinking that
    * the stream is seekable, when in fact it's not. Basically, this
    * will keep JMF from puking over something it expects but can't
    * actually get.
    public class SeekableInputStream extends BufferedInputStream implements PullSourceStream, Seekable {
    protected int tellPoint;
    public final static int MAX_MARK = 131072; // Give JMF 128k of data to "play" with.
    protected ContentDescriptor unknownCD;
    // Constructor. Effectively trivial.
    public SeekableInputStream (InputStream in) {
    super (in, MAX_MARK);
    tellPoint = 0;
    mark (MAX_MARK);
    unknownCD = new ContentDescriptor ("unknown");
    // Specified size constructor.
    public SeekableInputStream (InputStream in, int size) {
    super (in, Math.max(size, MAX_MARK));
    tellPoint = 0;
    mark(Math.max(size, MAX_MARK));
    unknownCD = new ContentDescriptor ("unknown");
    // Reads a byte and increments tellPoint.
    public int read () throws IOException {
    int readByte = super.read();
    tellPoint++;
    return readByte;
    // Reads bytes (specified by PullSourceStream).
    public int read (byte[] buf, int off, int len) throws IOException {
    int bytesRead = super.read (buf, off, len);
    tellPoint += bytesRead;
    return bytesRead;
    public int read (byte[] buf) throws IOException {
    int bytesRead = super.read (buf);
    tellPoint += bytesRead;
    return bytesRead;
    // Returns true if in.available() <= 0 (that is, if there are no bytes to
    // read without blocking or end-of-stream).
    public boolean willReadBlock () {
    try {
    return (in.available() <= 0);
    } catch (IOException ioe) {
    // Stick a fork in it...
    return true;
    // Resets the tellPoint to 0 (meaningless after you've read one buffer length).
    public void reset () throws IOException {
    super.reset();
    tellPoint = 0;
    // Skips bytes as expected.
    public long skip (long n) throws IOException {
    long skipped = super.skip(n);
    tellPoint += skipped;
    return skipped;
    // Trivial.
    public void mark (int readLimit) {
    super.mark (readLimit);
    // Returns the "unknown" ContentDescriptor.
    public ContentDescriptor getContentDescriptor () {
    return unknownCD;
    // Lengths? We don't need no stinkin' lengths!
    public long getContentLength () {
    return SourceStream.LENGTH_UNKNOWN;
    // Theoretically, this is always false.
    public boolean endOfStream () {
    return false;
    // We don't provide any controls, either.
    public Object getControl (String controlName) {
    return null;
    public Object[] getControls () {
    return null;
    // Not really... but...
    public boolean isRandomAccess () {
    return true;
    // This only works for the first bits of the stream, while JMF is attempting
    // to figure out what the stream is. If it tries to seek after that, bad
    // things are going to happen (invalid-mark exception).
    public long seek (long where) {
    try {
    reset();
    mark(MAX_MARK);
    skip(where);
    } catch (IOException ioe) {
    ioe.printStackTrace();
    return tell();
    // Tells where in the stream we are, adjusted for seeks, resets, skips, etc.
    public long tell () {
    return tellPoint;
    void fatalError (String deathKnell) {
    System.err.println(":[ Fatal Error ]: - " + deathKnell);
    throw new Error(deathKnell);
    ** end file SeekableInputStream.java **
    ** begin file StreamingViewerApplet.java **
    * This Java Applet will take a streaming video passed to it via the applet
    * command in the embedded object and attempt to play it. No fuss, no muss.
    * Based on the SimplePlayerApplet from Sun, and uses a modified version of
    * jicyshout's (jicyshout.sourceforge.net) tweaks to get JMF to play streams.
    * Use it like this:
    * <!-- Sample HTML
    * <APPLET CODE="StreamingViewerApplet.class" WIDTH="320" HEIGHT="240">
    * <PARAM NAME="code" VALUE="StreamingViewerApplet.class">
    * <PARAM NAME="type" VALUE="application/x-java-applet;version=1.1">
    * <PARAM NAME="streamwidth" VALUE="width (defaults to 320, but will resize as per video size)">
    * <PARAM NAME="streamheight" VALUE="height (defaults to 240, but will resize as per video size)">
    * <PARAM NAME="stream" VALUE="insert://your.stream.address.and:port/here/">
    * </APPLET>
    * -->
    import java.applet.Applet;
    import java.awt.*;
    import java.awt.event.*;
    import java.lang.String;
    import java.lang.ArrayIndexOutOfBoundsException;
    import java.net.URL;
    import java.net.MalformedURLException;
    import java.net.*;
    import java.io.*;
    import java.io.IOException;
    import java.util.Properties;
    import javax.media.*;
    import javax.media.protocol.*;
    public class StreamingViewerApplet extends Applet implements ControllerListener {
    Player player = null;
    Component visualComponent = null;
    SimpleVideoDataSource dataSource;
    URL url;
    MediaLocator ml;
    Panel panel = null;
    int width = 0;
    static int DEFAULT_VIDEO_WIDTH = 320;
    int height = 0;
    static int DEFAULT_VIDEO_HEIGHT = 240;
    String readParameter = null;
    // Initialize applet, read parameters, create media player.
    public void init () {
    try {
    setLayout(null);
    setBackground(Color.white);
    panel = new Panel();
    panel.setLayout(null);
    add(panel);
    // Attempt to read width from applet parameters. If not given, use default.
    if ((readParameter = getParameter("streamwidth")) == null) {
    width = DEFAULT_VIDEO_WIDTH;
    } else {
    width = Integer.parseInt(readParameter);
    // Ditto for height.
    if ((readParameter = getParameter("streamheight")) == null) {
    height = DEFAULT_VIDEO_HEIGHT;
    } else {
    height = Integer.parseInt(readParameter);
    panel.setBounds(0, 0, width, height);
    // Unfortunately, this we can't default.
    if ((readParameter = getParameter("stream")) == null) {
    fatalError("You must provide a stream parameter!");
    try {
    url = new URL(readParameter);
    ml = new MediaLocator(url);
    dataSource = new SimpleVideoDataSource(ml);
    } catch (MalformedURLException murle) {
    fatalError("Malformed URL Exception: " + murle);
    try {
    dataSource.connect();
    player = Manager.createPlayer(dataSource);
    } catch (IOException ioe) {
    fatalError("IO Exception: " + ioe);
    } catch (NoPlayerException npe) {
    fatalError("No Player Exception: " + npe);
    if (player != null) {
    player.addControllerListener(this);
    } else {
    fatalError("Failed to init() player!");
    } catch (Exception e) {
    fatalError("Error opening player. Details: " + e);
    // Start stream playback. This function is called the
    // first time that the applet runs, and every time the user
    // re-enters the page.
    public void start () {
    try {
    if (player != null) {
    player.realize();
    while (player.getState() != Controller.Realized) {
    Thread.sleep(100);
    // Crashes... here?
    player.start();
    } catch (Exception e) {
    fatalError("Exception thrown: " + e);
    public void stop () {
    if (player != null) {
    player.stop();
    player.deallocate();
    } else {
    fatalError("stop() called on a null player!");
    public void destroy () {
    // player.close();
    // This controllerUpdate function is defined to implement a ControllerListener
    // interface. It will be called whenever there is a media event.
    public synchronized void controllerUpdate(ControllerEvent event) {
    // If the player is dead, just leave.
    if (player == null)
    return;
    // When the player is Realized, get the visual component and add it to the Applet.
    if (event instanceof RealizeCompleteEvent) {
    if (visualComponent == null) {
    if ((visualComponent = player.getVisualComponent()) != null) {
    panel.add(visualComponent);
    Dimension videoSize = visualComponent.getPreferredSize();
    width = videoSize.width;
    height = videoSize.height;
    visualComponent.setBounds(0, 0, width, height);
    } else if (event instanceof CachingControlEvent) {
    // With streaming, this doesn't really matter much, does it?
    // Without, a progress bar of some sort would be appropriate.
    } else if (event instanceof EndOfMediaEvent) {
    // We should never see this... but...
    player.stop();
    fatalError("EndOfMediaEvent reached for streaming media. ewe ewe tea eff?");
    } else if (event instanceof ControllerErrorEvent) {
    player = null;
    fatalError(((ControllerErrorEvent)event).getMessage());
    } else if (event instanceof ControllerClosedEvent) {
    panel.removeAll();
    void fatalError (String deathKnell) {
    System.err.println(":[ Fatal Error ]: - " + deathKnell);
    throw new Error(deathKnell);
    ** end file StreamingViewerApplet.java **
    Now, I'm still new to the JMF, so this might be obvious to some of you... but it's exploding on me, and crashing to desktop (both in IE and Firefox) with some very fun errors:
    # An unexpected error has been detected by HotSpot Virtual Machine:
    # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x21217921, pid=3200, tid=3160
    # Java VM: Java HotSpot(TM) Client VM (1.5.0_06-b05 mixed mode, sharing)
    # Problematic frame:
    # C 0x21217921
    --------------- T H R E A D ---------------
    Current thread (0x058f7280): JavaThread "JMF thread: com.sun.media.amovie.AMController@506411[ com.sun.media.amovie.AMController@506411 ] ( realizeThread)" [_thread_in_native, id=3160]
    siginfo: ExceptionCode=0xc0000005, writing address 0x034e6360
    (plenty more here, I can post the rest if necessary)
    The problem seems to be coming from the "return seekStreams" statement in the first file; when I have execution aborted before that (with a fatalError call), it doesn't crash.
    Any tips/hints/suggestions?

    You should write your own Applet, where you can easily get the visual component (getVisualComponent())and show it directly in your Applet (you call it "embedded"). As far as I know, all examples (AVReceive* etc.) use the component which opens a new window.
    Best regards from Germany,
    r.v.

  • Remote video streaming not working with Windows Server Essentials Media Pack

    I installed Server Essentials Media Pack and the video streaming via remote access does not seem to be working. I see all the video files on the server's remotewebaccess page in "Media Library" group. When I try to play the video in Chrome
    the player appears for a brief moment, but then the browser starts downloading the entire file. With Internet Explorer the empty browser window opens and the download starts. I am trying it while outside of my local network. The video streaming used to work
    with Server 2012 Esesentials. Am I missing some additional codecs or remote streaming is no longer supported?

    Hi,
    What’s the default player for these media files on your computer? The issue may be caused by the default player could not load the media file correctly. Please make sure Windows Media Player
    with full codec installed is the default one. And then check if the media streaming feature could work as normal. Here is an article about how to configure the media streaming feature, hope it helps.
    Manage Digital Media in Windows Server 2012 Essentials
    http://technet.microsoft.com/en-us/library/jj628151.aspx
    Best Regards,
    Andy Qi
    Andy Qi
    TechNet Community Support

  • No audio video streams upon import of .mov files?

    Hi... recently upgraded OS onto Intel 240 GB SSD. Running Widows 7 64 bit, clean re-install, 24 GB RAM, NIVIDIA Quadro FX 4800. I have been trying to optimize the system for maximum GPU accelerated effects while also taking advantage of the high speed read and write of my disk. OS runs on SSD, Adobe media cache on separate 2 TB eSATA connection, Media stored on external drive USB 3.0. Without getting into the fine details this is a snapshot of my workflow.
    The few problems I am encountering are some .mov files cannot be imported to PP. Error reads no audio or video stream in the files. I suspected metadata issues so tried to import with media browser and still no luck. These files worked perfectly before I began surgery 2 days ago on my computer. I have installed the latest version of quicktime and yet to no avail. Any recommendations here regarding my issue with imports or suggestions to benefit from my hardware would be appreciated.

    MOV is a wrapper, what is inside YOUR wrapper - Exactly what is INSIDE the video you are editing?
    Codec & Format information, with 2 links inside for you to read http://forums.adobe.com/thread/1270588
    Report back with the codec details of your file, use the programs below... A screen shot works well to SHOW people what you are doing
    https://forums.adobe.com/thread/1070933 for screen shot instructions
    Free programs to get file information for PC/Mac http://mediaarea.net/en/MediaInfo/Download

  • .Mov files in CC : The File Has no Audio or Video Streams

    I recently updated premier to CC , since i have issues iimporting any .mov files at all.
    The specific ones Im trying for my current project are exports from AE , rendered lossless animation .mov , worked fine in CS6 , will play in quicktime and other generic's but always getting the The FIle Has no Audio or Video Streams message when trying to import into a project.
    Quicktime is updated so I can't understand why the won't play, is this a CC bug ?
    i go back to cs6 on my other comp they open fine...
    Ive seen a few topics on this none with a resolution and most of those where from cam's, this is an export from AE, anyone able to help this is stopping me from working atm ......
    troy

    I can verify that Apple screen recordings without audio do not import into any Adobe premeier.
    Details on screen recording from Gspot v2.70a:
    H.264
    qt  : Apple QuickTime (.MOV/QT)
    File Type: QuickTime (.MOV)
    Mime Type: video/quicktime
    Len: 1:03.083
    Frms: 1,521
    Qf: 0.153
    Frames/s: 20.000
    wx: 1280 x 800
    sar: 1.600 (8:5)
    However Apple (MAC OSX) screen recordings WITH audio will import.
    I would think this should be fixable with hotfixes...
    If you (adobe staff) have access to macbook pros 2012 or 2013 models, open quick time pro, do a screen recording, make sure no audio is recording, just your screen movements.. then export to 1080p video (mov is only option).. then on a windows PC try to import that file into adobe premiere. The file will play perfectly fine natively in windows with any player so long as a H264 decoder is available on that system... the problem here is Adobe Premiere. Not the users system.
    Edit:
    To help those with this issue.. just make sure when you render your mov that you have ANY kind of audio in it.. and just remove the audio track once imported into premiere. I know it's frustrating and you would think something as simple as not having an audio track wouldn't break premiere but alas... we have to work around the shortcomings until they decide to fix it.. just like the VFR issue in premiere.

Maybe you are looking for

  • Problems After Upgrading iTunes and iPod software

    My Goddaughter recently updated her iTunes to the newest version and her iPod to OS6. Now when she open iTunes, the top tool bar that used to have "File, Edit, View, ....tools., etc., is now blank. Is that supposed to happen or is this a new feature

  • Loading picture problem

    I'm having problem with loading picture in applet window. Here is the example CODE: * <applet code="SimpleImageLoad" width=248 height=146> * <param name="img" value="seattle.jpg"> * </applet> import java.awt.*; import java.applet.*; public class Simp

  • Adding a Cluster Hyper-V 2012 into SCVMM 2012 SP1 causes a Crash in VMMService.exe

    I'm trying to register a 5 node Cluster into SCVMM 2012 SP1 host, but when the registration job is running the SCVMMService crashes and then registration becomes inconsistent. this is the error log from App Event Viewer: Event 1000: Application Error

  • Safari - sreamed media

    I am trying to view live TV and listen to live radio in Safari. The media is in a foreign language. Safari does not play it. Sometimes I get a message asking for Windows Media Player. Can Safari even play live media from the internet? If not how can

  • Dynamic struts-config.xml datasource

    Is there a way to setup my application so it can detect what server(testing or production) it is running on, and decide which database to point to without me having to change the config file when I deploy the app in a test or production environment?