fvisagie
20th August 2009, 12:07
Hi All,
Do you know of a script that generates a scene change list from DV timecodes?
I need to make a scene change list for an edited DV AVI of around 36GB. There are various utilities that use DATECODEs to do that. However, that is less accurate than using timecodes, because DATECODEs only have 1 s resolution and miss short edits.
For lack of AVS scripting experience, I plan to merely dump each frame's frame number and timecode value into a CSV file using DVInfo, for Excel to pick up the discontinuities.
What is frustrating is all that seems doable in an AVS script in order to output scene changes only (even in ASS format ;-)), but I don't have the AVS know-how yet. Some string manipulation would be needed to convert the timecode frame number returned in DVInfo's tc_time (e.g. 00:55:48-08) to a decimal value, but the logic would go something like this:
/* Initialisation */
previous_tc = -1;
/* Runtime code */
/* Recompressed frames with e.g. text inlay have timecode = 0 */
if ( (tc_time && previous_tc && (tc_time != (previous_tc + 1) MOD frame_rate)) || (!tc_time && previous_tc) || (tc_time && !previous_tc) )
list_change (current_frame, tc_time);
previous_tc = tc_time;
This seems so straight-forward, someone must have already done this. If you know of such an AVS script, please tell me?!
Thanks,
Francois
Do you know of a script that generates a scene change list from DV timecodes?
I need to make a scene change list for an edited DV AVI of around 36GB. There are various utilities that use DATECODEs to do that. However, that is less accurate than using timecodes, because DATECODEs only have 1 s resolution and miss short edits.
For lack of AVS scripting experience, I plan to merely dump each frame's frame number and timecode value into a CSV file using DVInfo, for Excel to pick up the discontinuities.
What is frustrating is all that seems doable in an AVS script in order to output scene changes only (even in ASS format ;-)), but I don't have the AVS know-how yet. Some string manipulation would be needed to convert the timecode frame number returned in DVInfo's tc_time (e.g. 00:55:48-08) to a decimal value, but the logic would go something like this:
/* Initialisation */
previous_tc = -1;
/* Runtime code */
/* Recompressed frames with e.g. text inlay have timecode = 0 */
if ( (tc_time && previous_tc && (tc_time != (previous_tc + 1) MOD frame_rate)) || (!tc_time && previous_tc) || (tc_time && !previous_tc) )
list_change (current_frame, tc_time);
previous_tc = tc_time;
This seems so straight-forward, someone must have already done this. If you know of such an AVS script, please tell me?!
Thanks,
Francois