Feature Suggestion: FLV controls

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • eric_darling
    Indigo Rose Customer
    • Jun 2002
    • 1805

    Feature Suggestion: FLV controls

    I've seen the future, and it's all video on the web being encoded in Flash. With H.264 support and unrivaled ubiquity, Flash trumps all. So, how's about loadin' us up with some FLV player controls for the Flash object, IR? :yes
    Eric Darling
    eThree Media
    http://www.ethreemedia.com
  • AGRO
    Forum Member
    • Oct 2000
    • 818

    #2
    You mean having controls in ams that would control the flv. in the flash object? I am curious what advantage would you have with the controls in ams rather with the controls in flash?

    Comment

    • Intrigued
      Indigo Rose Customer
      • Dec 2003
      • 6138

      #3
      Eric, not to sidetrack you about Flash being all that, but, take a look at www.Silverlight.net. Version 2.0 is coming out and this going to be a big deal from what I can see. It's based on .NET 3.x (WPF, XAML).

      Big companies, consultants, and individuals the world over are already investing time and monies into building R.I.A. applications with Silverlight in mind. Version 2.0 will surely be the "bump" Silverlight needed to get mass-adaption.

      Anyway, sorry for the hijack there, but something to check out nontheless.
      Intrigued

      Comment

      • eric_darling
        Indigo Rose Customer
        • Jun 2002
        • 1805

        #4
        Originally posted by AGRO
        You mean having controls in ams that would control the flv. in the flash object? I am curious what advantage would you have with the controls in ams rather with the controls in flash?
        Hey AGRO, you're probably a lot more familiar with Flash's capabilities and how to use them than the average AMS user. And while I certainly use Flash enough myself for purposes of showing FLV files, there are several major issues with using Flash for that. First of all you gotta own Flash (not an inexpensive program). There are ways of encoding video into FLV without Flash, so if all you want to do is play an FLV inside AMS, you have to first create a SWF, and that means using Flash. Secondly, using the AMS coding interface to playback an FLV, if that's all that's required of your particular Flash object, is going to go a heckuva lot faster by not having to change program interfaces to build that SWF. Simple playback controls are what I'm after - not decorative or substitutive of Flash's inherent capabilities, but hooks that AMS programmers can use to manipulate FLV files from within AMS. How cool would that be - to have playback control from an AMS skinned interface?

        Originally posted by Intrigued
        Eric, not to sidetrack you about Flash being all that, but, take a look at www.Silverlight.net. Version 2.0 is coming out and this going to be a big deal from what I can see. It's based on .NET 3.x (WPF, XAML).
        Hey Intrigued, I'm actually already aware of Silverlight - even played around with an early incarnation of it when Ben Waggoner made a public Beta first available some time ago. While the technology is neato, it's a far cry from Flash in my opinion. WMV (Silverlight's underlying video component) doesn't support H.264, either. And that's the impending future of web video that Flash absolutely will deliver. H.264 is better than WMV for highly compressed HD video, but you'll really have to see to believe.
        Eric Darling
        eThree Media
        http://www.ethreemedia.com

        Comment

        • rhosk
          Indigo Rose Customer
          • Aug 2003
          • 1698

          #5
          I'm fairly certain that this can be done with fscommand. If there's enough interest, I can probably drum up something. If [you] have a basic player (without any flash player controls) and provide the variables, you could create all of your own buttons in AMS.
          Regards,

          -Ron

          Music | Video | Pictures

          Comment

          • rhosk
            Indigo Rose Customer
            • Aug 2003
            • 1698

            #6
            Actually, didn't take much at all. Don't even have to use fscommand, just changing variables. Not real pretty, but you'll see that it can be done. This could easily get extremely detailed if desired (ff, seek, goto, resolution, size, etc..).

            http://muvipix.com./samples/flv.zip
            Regards,

            -Ron

            Music | Video | Pictures

            Comment

            • AGRO
              Forum Member
              • Oct 2000
              • 818

              #7
              Originally posted by eric_darling View Post
              Hey AGRO, you're probably a lot more familiar with Flash's capabilities and how to use them than the average AMS user. And while I certainly use Flash enough myself for purposes of showing FLV files, there are several major issues with using Flash for that. First of all
              You have some great points. I use Flash more than anything else. Having the option of controlling the .flv within ams would make it easier to the developer who does not own flash. There are .flv players you can find where you do not need to own flash to edit, that is done with the xml file. Either way having it done in ams would be a lot faster and allow the developer to be more creative I feel. Great topic, great idea also!!

              Comment

              • rhosk
                Indigo Rose Customer
                • Aug 2003
                • 1698

                #8
                Hey AGRO, when are you going to update your flash "template" site? I think I checked it out like 3 years ago and it hasn't changed an iota.
                Originally posted by AGRO
                I use Flash more than anything else
                Would like to see some of your stuff.
                Regards,

                -Ron

                Music | Video | Pictures

                Comment

                • AGRO
                  Forum Member
                  • Oct 2000
                  • 818

                  #9
                  Originally posted by rhosk View Post
                  Hey AGRO, when are you going to update your flash "template" site? I think I checked it out like 3 years ago and it hasn't changed an iota.

                  Would like to see some of your stuff.
                  As many freelance developers know, quite a few clients (who own design studios) do not wish you to show work you have done, they wish to give the illusion it was done in house. I have multiple pet projects I have done, some simple some not.

                  As far as my site goes, I wish I had the time to redo it completely. I have really learned a lot and would love to show it off.

                  I will see about posting some small sample files I have done....

                  I know one I recently finished, that for the people who have flash, might like it. I will post that one for sure...

                  Comment

                  • eric_darling
                    Indigo Rose Customer
                    • Jun 2002
                    • 1805

                    #10
                    Heh... I bet AGRO suffers from what many strong developers experience - the "Cobbler's Kids" syndrome - that is to say he's always working for his clients and therefore never for himself. I've seen his Flash work, and it's uncommonly good!
                    Eric Darling
                    eThree Media
                    http://www.ethreemedia.com

                    Comment

                    • eric_darling
                      Indigo Rose Customer
                      • Jun 2002
                      • 1805

                      #11
                      The more I think about it, the more geeky I get - like being able to trigger any sort of event in AMS when the video reaches a particular time. This would be especially good for video of a presenter with his slides/bullet points updating synchronized to his presentation, or even other videos being set off in other objects on the page. You can do that now with MPEG or WMV, but it would be great to be able to do it in AMS with FLV also. As FLV becomes the premier standard for delivering multimedia video, this will become an important product feature upgrade for AMS, if only to provide parity with the already existing video object and plugin.
                      Eric Darling
                      eThree Media
                      http://www.ethreemedia.com

                      Comment

                      • AGRO
                        Forum Member
                        • Oct 2000
                        • 818

                        #12
                        Originally posted by eric_darling View Post
                        The more I think about it, the more geeky I get - like being able to trigger any sort of event in AMS when the video reaches a particular time. This would be especially good for video of a presenter with his slides/bullet points updating synchronized to his presentation, or even other videos being set off in other objects on the page. You can do that now with MPEG or WMV, but it would be great to be able to do it in AMS with FLV also. As FLV becomes the premier standard for delivering multimedia video, this will become an important product feature upgrade for AMS, if only to provide parity with the already existing video object and plugin.
                        I am sure you know, you can set cue points in .flv now. Either when encoding the .flv or with actionscript. Here is a copy/paste from the Flash help...all the more reason why this needs to be in ams!!

                        Working with cue points
                        You can use several different kinds of cue points with Flash Video. You can use ActionScript to interact with cue points that you embed in an FLV file (when you create the FLV file), or that you create by using ActionScript.

                        Navigation cue points You embed navigation cue points in the FLV stream and FLV metadata packet when you encode the FLV file. You use navigation cue points to let users seek to a specified part of a file.

                        Event cue points You embed event cue points in the FLV stream and FLV metadata packet when you encode the FLV file. You can write code to handle the events that are triggered at specified points during FLV playback.

                        ActionScript cue points External cue points that you create by using ActionScript code. You can write code to trigger these cue points in relation to the video's playback. These cue points are less accurate than embedded cue points (up to a tenth of a second), because the video player tracks them separately.

                        Navigation cue points create a keyframe at the specified cue point location, so you can use code to move a video player's playhead to that location. You can set particular points in an FLV file where you might want users to seek. For example, your video might have multiple chapters or segments, and you can control the video by embedding navigation cue points in the video file.

                        If you plan to create an application in which you want users to navigate to a cue point, you should create and embed cue points when you encode the file instead of using ActionScript cue points. You should embed the cue points in the FLV file, because they are more accurate to work with. For more information on encoding FLV files with cue points, see Working with cue points in Using Flash.

                        You can access cue point parameters by writing ActionScript. Cue point parameters are a part of the event object received with the cuePoint event (event.info.parameters). For information on accessing or tracing cue points, see Working with cue points in Using Flash.

                        Tracing cue points from an FLV file
                        You can trace the cue points that are embedded in an FLV document using NetStream.onMetaData. You need to recurse the structure of the metadata that returns to see the cue point information.

                        The following code traces cue points in an FLV file:

                        var connection_nc:NetConnection = new NetConnection();
                        connection_nc.connect(null);
                        var stream_ns:NetStream = new NetStream(connection_nc);
                        stream_ns.onMetaData = function(metaProp:Object) {
                        trace("The metadata:");
                        traceMeta(metaProp);
                        // traceObject(metaProp, 0);
                        };
                        my_video.attachVideo(stream_ns);
                        stream_ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv");

                        function traceMeta(metaProp:Object):Void {
                        var p:String;
                        for (p in metaProp) {
                        switch (p) {
                        case "cuePoints" :
                        trace("cuePoints: ");
                        //cycles through the cue points
                        var cuePointArr:Array = metaProp[p];
                        for (var j:Number = 0; j < cuePointArr.length; j++) {
                        //cycle through the current cue point parameters
                        trace("\t cuePoints[" + j + "]:");
                        var currentCuePoint:Object = metaProp[p][j];
                        var metaPropPJParams:Object = currentCuePoint.parameters;
                        trace("\t\t name: " + currentCuePoint.name);
                        trace("\t\t time: " + currentCuePoint.time);
                        trace("\t\t type: " + currentCuePoint.type);
                        if (metaPropPJParams != undefined) {
                        trace("\t\t parameters:");
                        traceObject(metaPropPJParams, 4);
                        }
                        }
                        break;
                        default :
                        trace(p + ": " + metaProp[p]);
                        break;
                        }
                        }
                        }
                        function traceObject(obj:Object, indent:Number):Void {
                        var indentString:String = "";
                        for (var j:Number = 0; j < indent; j++) {
                        indentString += "\t";
                        }
                        for (var i:String in obj) {
                        if (typeof(obj[i]) == "object") {
                        trace(indentString + " " + i + ": [Object]");
                        traceObject(obj[i], indent + 1);
                        } else {
                        trace(indentString + " " + i + ": " + obj[i]);
                        }
                        }
                        }


                        The following output appears:

                        The metadata:
                        canSeekToEnd: true
                        cuePoints:
                        cuePoints[0]:
                        name: point1
                        time: 0.418
                        type: navigation
                        parameters:
                        lights: beginning
                        cuePoints[1]:
                        name: point2
                        time: 7.748
                        type: navigation
                        parameters:
                        lights: middle
                        cuePoints[2]:
                        name: point3
                        time: 16.02
                        type: navigation
                        parameters:
                        lights: end
                        audiocodecid: 2
                        audiodelay: 0.038
                        audiodatarate: 96
                        videocodecid: 4
                        framerate: 15
                        videodatarate: 400
                        height: 213
                        width: 320
                        duration: 16.334


                        For information on using cue points with the FLVPlayback component, see Using embedded cue points with the FLVPlayback component.

                        Using embedded cue points with the FLVPlayback component
                        You can view cue points for an FLV file in the Property inspector when you use the FLVPlayback component. After you set the contentPath property for the FLVPlayback instance, you can view any cue points that are embedded in the video file. Using the Parameters tab, find the cuePoints property, and click the magnifying glass icon to see a list of the cue points in the file.

                        NOTE

                        To see the cue points on the Parameters tab, you must type the name of your FLV file in the contentPath text box instead of using code to assign the contentPath.


                        The following example shows how to use cue point information with the FLVPlayback component.

                        To use cue points with the FLVPlayback component:
                        Create a new Flash document called cueFlv.fla.
                        Open the Components panel (Window > Components), and drag an instance of the FLVPlayback and TextArea components to the Stage.
                        Select the TextArea component, and type my_ta in the Instance Name text box in the Property inspector (Window > Properties > Properties).
                        With the TextArea component still selected, type 200 in the width text box and 100 in the height text box.
                        Select the FLVPlayback instance on the Stage, and then type my_flvPb in the Instance Name text box.
                        Select Frame 1 on the Timeline, and type the following code in the Actions panel. var my_flvPb:mx.video.FLVPlayback;
                        var my_ta:mx.controls.TextArea;
                        my_flvPb.contentPath = "http://www.helpexamples.com/flash/video/cuepoints.flv";
                        var listenerObject:Object = new Object();
                        listenerObject.cuePoint = function(eventObject:Object) {
                        my_ta.text += "Elapsed time in seconds: " + my_flvPb.playheadTime + "\n";
                        };
                        my_flvPb.addEventListener("cuePoint",listenerObjec t);


                        Select Control > Test Movie to test the SWF file.
                        The elapsed time appears in the TextArea instance when the playhead passes each cue point embedded in the document.

                        For more information on working with the FLVPlayback component, see ActionScript 2.0 Components Language Reference.

                        Creating cue points with ActionScript to use with components
                        You can create cue points with ActionScript, and then use them with a video object instance, or one of the video player components (FLVPlayback for Flash Player 8 and later, or MediaPlayback for Flash Player 7). The following examples show you how easy it is to use ActionScript code to create cue points, and then use a script to access them.

                        NOTE

                        Embed navigation cue points in a document if you intend to add navigation functionality to an application. For more information, see Working with cue points. For an example of working with embedded cue points, see Using embedded cue points with the FLVPlayback component.

                        Comment

                        • AGRO
                          Forum Member
                          • Oct 2000
                          • 818

                          #13
                          Here is something that I can show...more to come.


                          ShadeFinder - Little app. to find the exact mathematic gradient shades of two colors.
                          Attached Files

                          Comment

                          • AGRO
                            Forum Member
                            • Oct 2000
                            • 818

                            #14
                            Here is the one for Flash Developers:

                            Snippets!

                            A Flash component Panel that uses the Shared Object class to save your favorite and most used scripts within flash.

                            Enjoy!



                            Any bugs, or feature requests just email me.
                            Attached Files

                            Comment

                            Working...
                            X