For mine (which hasn't turned up on there yet) I did the following.
Joined all my footage together (
GoPro) edited and processed it out to be below 2.5GB in total using Power Director (you can use what ever video editor you have for this).
For the GPS I used a mixture of hand editing the data and then reloading it in to Strava as a private route to check I had the start and end in the places I wanted plus any other edits I needed.
So from my Garmin Connect screen looking at the activity I want to use, I selected the little cog settings menu when viewing the activity and exported the activity to a GPX file (you can do similar in Strava of course).
I opened the GPX in Notepad++ (
http://notepad-plus-plus.org/) You can set the 'Language' in Notepad++ to XML and it will help with finding the parts of the file to edit.
I then looked at the start of the video and used the following website to put a marker where I think the vid started
http://itouchmap.com/latlong.html
The GPX file has a particular format, if you have used the Lap button on your GPS device (if it has one) then you will have a bunch of stuff starting with <Lap> and ending with </Lap> you will have a <Lap></Lap> for each time the button was pressed. With a bit of forward planning you could then create a lap for the start and then at the end of the video section and it would make editing easier.
If you didn't press the button, you will have just one of these 'Laps' in the GPX.
Inside the <Lap></Lap> you will have a <Track> and within that you will have a load of <TrackPoint>'s. The TrackPoint contains the position plus other info like speed, temperature, heart rate etc. eg:
<Track>
<Trackpoint>
<Time>2014-10-10T08:56:25.000Z</Time>
<Position>
<LatitudeDegrees>51.72667946666479</LatitudeDegrees>
<LongitudeDegrees>0.41273513808846474</LongitudeDegrees>
</Position>
<AltitudeMeters>55.599998474121094</AltitudeMeters>
<DistanceMeters>5907.509765625</DistanceMeters>
<HeartRateBpm>
<Value>131</Value>
</HeartRateBpm>
<Cadence>88</Cadence>
<Extensions>
<TPX xmlns="
http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>5.756999969482422</Speed>
</TPX>
</Extensions>
</Trackpoint>
Then looking at the GPX file in Notepad++ I picked out the first Lat/Long, in the snippet of GPX above, that would be the:
<LatitudeDegrees>51.72667946666479</LatitudeDegrees>
<LongitudeDegrees>0.41273513808846474</LongitudeDegrees>
I then pasted the numbers in to the "Show Point" boxes for Lat/Long and compared that with the point I placed on the map. Repeat, moving through the lat/log in the GPX till I got a reasonably close place.
If it was from the front of the vid, I would then delete the points before that location in the file back to the <Track> line (but not the <Track> line of course!).
I would then use the <Time> info and paste that in to the <ID></ID> bit so the activity looks like a new one to Strava and then manually add it to Strava to check the start and end are in where I want them. Once you are happy - don't forget to
It takes a little while, but its not a case of do each point in turn, but a case of jump forward 30 points and try that to see if its close then fine tune from there.... hope that all makes sense
In terms of length, I would check you weren't stopped for too long with no auto-pause, if you were, then you can sort of find the location using the above and then snip the trackpoints out of the file to shorten the GPS data.