胡斌

process multi audio files

... ... @@ -339,20 +339,39 @@ int process_files(const char * output_dest_file)
get_duration_from_video_file();
if (filesvideo.size()) {//has video files
for (int i = 0; i < filesaudio.size(); i++){ //
fileinfo audio = filesaudio[i];
float audio_start = 0;
float audio_start = audio.start_time;
for (int j = i; j < filesaudio.size(); j++){
filesaudio[j].start_time -= audio_start;
filesaudio[j].end_time -= audio_start;
}
for (int j = nv; j < filesvideo.size(); j++) {
filesvideo[j].start_time -= audio_start;
filesvideo[j].end_time -= audio_start;
}
audio = filesaudio[i];
audio_start = 0;
for (; nv < filesvideo.size(); nv++) {
fileinfo video = filesvideo[nv];
if (video.start_time - audio_start > 0.100) {
sprintf(destfile, "%d_%s", nf, audio.name.c_str());
if (video.start_time > audio.end_time){
split_audio(audio, audio_start, audio.end_time - audio_start, destfile);
}
else{
split_audio(audio, audio_start, video.start_time - audio_start, destfile);
audio_start = video.start_time;
}
tmp_files.push_back(destfile);
audio_start = video.start_time;
sprintf(destfile, "%s.jpg", video.name.c_str());
get_video_first_frame_jpeg(video, destfile);
... ... @@ -362,6 +381,10 @@ int process_files(const char * output_dest_file)
merge_audio_pic(audio, nf, video, destfile);
merged_files.push_back(destfile);
nf++;
if (video.start_time > audio.end_time){//to next audio
break;
}
}
if (nv != filesvideo.size() - 1) {// not the last one
sprintf(destfile, "%d_%s", nf, audio.name.c_str());
... ...