무비 파일 추적을 사용하여 ns-2의 응용 프로그램 에이전트가 사용하는 이진 파일로 변환하는 tcl 스크립트를 사용하고 있습니다. 여기에 바이너리 파일로 동영상 파일 추적을 변환하는 스크립트의 코드입니다 :video.dat에서 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) 문서에 언급되어 있지 않거나 오래되어 현재 지원되지 않는다는 것을 발견하지 못했기 때문입니다.
결국 나는 그것을했습니다. 실제로 ns-2 Application/Traffic/Trace에 대한 추적 파일의 레코드에는 네트워크 바이트 순서로 2 개의 32 비트 정수가 포함됩니다. 첫 번째 정수는 마이크로 초 단위의 시간을 제공하고 두 번째 정수는 패킷 크기를 바이트 단위로 나타냅니다. tcl 스크립트 바이너리 형식 "II"는 이것을 읽음으로써이 형식으로 변환 할 수 없습니다. 그래서 저는 C 프로그램을 작성하고 필요한 바이너리 형식의 동영상 파일 추적을 변환 한 다음 ns-2 시뮬레이션에 사용하여 효과를 보았습니다. 자세한 설명은 – user976754