• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

After Effects video cue point data error #1107

New Here ,
Dec 17, 2012 Dec 17, 2012

Copy link to clipboard

Copied

Hi all,

I'm trying to create a personalised video using the techniques described here: http://www.adobe.com/devnet/flash/articles/atv_personalized_video.html

I have created the video and tracking data in After Effects (CS5), converted the tracking data to Flash cue points and exported the .flv file. I can import the video into Flash (CS6) just fine and I can see all the cue point data however when I try to compile the Flash project, bearing in mind this is just an empty stage with an instance of FLVPlayback on it, I get the following errors:

VerifyError: Error #1107: The ABC data is corrupt, attempt to read out of bounds.

ReferenceError: Error #1065: Variable Icon is not defined.

ReferenceError: Error #1065: Variable FLVPlayback is not defined.

ReferenceError: Error #1065: Variable Main is not defined.

If I export the .flv without the cue point data I can import, compile and play the video without error.

I've had a look around and I've not really been able to find any information about this issue and don't have a clue where to start with it.

Any ideas?!

TOPICS
ActionScript

Views

1.7K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 17, 2012 Dec 17, 2012

Copy link to clipboard

Copied

don't import the video.

use an flvplayback component to progressively download your video.  ie, add an flvplayback component to the stage and assign its source in the properties panel or with actionscript.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 17, 2012 Dec 17, 2012

Copy link to clipboard

Copied

Hi kglad,

Thanks for your reply. I'm not embedding the video in the swf, I've loaded it into an FLVPlayback component. This has been done on the stage and by assigning the video source in the properties panel.

Cheers,

Tom

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 19, 2012 Dec 19, 2012

Copy link to clipboard

Copied

Update:

I've found a workaround. I had a suspicion that this error might be due to an incompatibility between CS5 and CS6 so I installed Flash CS5 and tried the CS5 exported .flv which resulted in the same error. I then installed After Effects CS6 and tried re-exporting the .flv file which led me to find that AE CS6 has a bug whereby it fails to export .flv files with the flash cue point metadata as described here: http://forums.adobe.com/message/4791847

After tinkering around with AE and Flash I've found the following works:

1. Export flv from AE WITHOUT cue point metadata

2. In AE convert properties to markers

3. Run a modified version of Bob9743 script from the other thread (I will post the exact script I used later) to export cue point data from AE as XML in a format that Flash will read.

4. Open Flash, create an FLVPlayback with the exported flv

5. Import the cue point data into the FLVPlayback component from the XML

I've tested this and can confirm it works. Interestingly when I first tried this Flash failed to import the cue points complaining about a stack overflow, when I stripped the number of cue points down from around 3000 to around 1000 I was able to import without problem. I'm now thinking that this large number of cue points may have been the cause of the original problem.

Hope that helps someone!

Tom

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 19, 2012 Dec 19, 2012

Copy link to clipboard

Copied

Here is the script I used to export the markers as valid XML for Flash to import. Please note that this will export all markers from all layers so if, as I did, you have multiple 'versions' of your tracking data on different layers it will export the whole lot.

var comp = app.project.activeItem;

var XMLStart = "<?xml version='1.0' encoding='UTF-8' ?><FLVCoreCuePoints>";

var XMLEnd = "</FLVCoreCuePoints>";

var XMLTemp = "";

var XMLFinal = "";

var layerCount = comp.numLayers;

var layer = new Object;

var layerMarkers = new Object;

var markerCount = 0;

var curMarkerTime = 0;

var curMarkerName = "";

var curMarkerType = "";

var curMarkerXML = "";

//Layer markers

for(i=1; i<layerCount+1; i++) {

    layer = comp.layer(i);

    layerMarkers = layer.marker;

    markerCount = layerMarkers.numKeys;

    for(j=1; j<markerCount+1; j++) {

       

        // get the parameters for this marker

        var params = layerMarkers.keyValue(j).getParameters();

        var XMLParam = "";

        var cont = false;

       

        // loop through parameters

        for(param in params) {

            // I added this conditional to strip out markers in my project which were superfluous

            /*

            if(params[param] == "410,230.5") {

                var cont = true;

                continue;

            }

            */

            // generate the XML for the parameter

            XMLParam += "<Parameter>";

              XMLParam += "<Name>" + param + "</Name>";

              XMLParam += "<Value>" + params[param] + "</Value>";

            XMLParam += "</Parameter>";

        }

   

        // if this is a superfluous marker then don't add it to the XML string, just go on to the next

        if(cont) {

            continue;

        }

       

        // get / set additional marker meta data

        curMarkerTime = layerMarkers.keyTime(j) * 1000;

        curMarkerName = layerMarkers.keyValue(j).cuePointName;

        curMarkerType = "actionscript";

       

        // assemble the full XML element for this cue point

        curMarkerXML = "<CuePoint><Time>" + curMarkerTime + "</Time><Type>" + curMarkerType + "</Type><Name>" + curMarkerName + "</Name><Parameters>" + XMLParam + "</Parameters></CuePoint>";

        XMLTemp += curMarkerXML;

    }

}

//Comp markers

var tempText = comp.layers.addText("");

var tempSrc = tempText.text.sourceText;

tempSrc.expression = "thisComp.marker.numKeys";

markerCount = Number(tempSrc.value);

if(markerCount > 0) {

    for (i=1; i<=markerCount; i++) {

        tempSrc.expression = "thisComp.marker.key(" + i + ").time;";

        curMarkerTime = Number(tempSrc.value) * 1000;

        tempSrc.expression = "thisComp.marker.key(" + i + ").cuePointName;";

        curMarkerName = String(tempSrc.value);

        tempSrc.expression = "thisComp.marker.key(" + i + ").eventCuePoint;";

        if(tempSrc.value == "true") {

            curMarkerType = "event";

        } else {

            curMarkerType = "navigation";

        }

        curMarkerXML = "<CuePoint><Time>" + curMarkerTime + "</Time><Type>" + curMarkerType + "</Type><Name>" + curMarkerName + "</Name></CuePoint>";

        XMLTemp += curMarkerXML;

    }

}

tempText.remove();

//create output string

XMLFinal = XMLStart + XMLTemp + XMLEnd;

//Write file

var cueFile = File.saveDialog("Save the XML file", "XML:*.xml" );

cueFile.open("W");

cueFile.write(XMLFinal);

cueFile.close();

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 20, 2013 Feb 20, 2013

Copy link to clipboard

Copied

Really nice scipt.. thanks.

I just have one small problem.

if i use it for exporting tracking data markers, it seems to lag if i import it into flash, and try to track somthing (red box) onto the tracking area.

any ideas?

Regards Kim

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 27, 2013 Feb 27, 2013

Copy link to clipboard

Copied

LATEST

Hi Again

Solved it!

it seems like Flash cant handle the masses of data if the Event-type is ActionScript. if i change it to "Event" it works fine.

i have made a little guide explaining the workaround:  http://kim.thoeisen.dk/ae-cs6-flv-cue-point-export/

Thanks a lot for the Script!

Regards Kim

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines