私は、ムービーファイルのトレースを取得してバイナリファイルに変換するtclスクリプトを使用しています。このバイナリファイルは、ns-2のアプリケーションエージェントによってさらに使用されます。ムービーファイルのトレースをバイナリファイルに変換するスクリプトのコードスニペットは次のとおりです。
set original_file_name Verbose_Silence_of_the_Lambs_VBR_H263.dat
set trace_file_name video.dat
set original_file_id [open $original_file_name r]
set trace_file_id [open $trace_file_name w]
set last_time 0
while {[eof $original_file_id] == 0} {
gets $original_file_id current_line
if {[string length $current_line] == 0 ||
[string compare [string index $current_line 0] "#"] == 0} {
continue
}
scan $current_line "%d%s%d" next_time type length
set time [expr 1000*($next_time-$last_time)]
set last_time $next_time
puts -nonewline $trace_file_id [binary format "II" $time $length]
}
close $original_file_id
close $trace_file_id
しかし、この作成されたvideo.datファイルをアプリケーションエージェントが使用するトラフィック生成にさらに使用すると、次のエラーが発生しました。
Bad file siz in video.dat
Segmenatation fault
親切にこれで戦利品を持っています。コード内のバイナリ形式「II」の意味は何ですか。tcl-binary(n)のドキュメントに記載されていないか、古くて現在サポートされていないためです。