executable = '"../../x64/Release/FeatureExtraction.exe"'; outputDir = 'D:\Datasets\face2face\2007_processed/'; % First collect the filenames of the data to be used input_label_dir = 'D:\Datasets\face2face\f2f-2007-all-transcriptions/'; folds = dir([input_label_dir, '*Rapport*']); listener_file_labels = {}; speaker_file_labels = {}; listener_vid_files = {}; speaker_vid_files = {}; speaker_vid_dir = 'D:\Datasets\face2face\f2f-2007-all-movie-speaker/'; listener_vid_dir = 'D:\Datasets\face2face\f2f-2007-all-movie-listener/'; verbose = true; for i=1:numel(folds) listener_file = dir([input_label_dir, folds(i).name, '/*.L.nod.eaf']); speaker_file = dir([input_label_dir, folds(i).name, '/*.S.nod.eaf']); if(~isempty(listener_file)) % Need to find the appropriate video file if it exists num = listener_file.name(end-15:end-10); vid_file_dir = dir([listener_vid_dir, '/*', num, '*']); vid_file = dir([listener_vid_dir, '/', vid_file_dir.name, '/*.mp4']); if(~isempty(vid_file)) listener_vid_files = cat(1, listener_vid_files, [listener_vid_dir, '/', vid_file_dir.name, '/', vid_file.name]); listener_file_labels = cat(1, listener_file_labels, [input_label_dir, '/' folds(i).name, '/' listener_file.name]); end end if(~isempty(speaker_file)) num = speaker_file.name(end-15:end-10); vid_file_dir = dir([speaker_vid_dir, '/*', num, '*']); vid_file = dir([speaker_vid_dir, '/', vid_file_dir.name, '/*.mp4']); if(~isempty(vid_file)) speaker_vid_files = cat(1, speaker_vid_files, [speaker_vid_dir, '/', vid_file_dir.name, '/', vid_file.name]); speaker_file_labels = cat(1, speaker_file_labels, [input_label_dir, '/' folds(i).name, '/' speaker_file.name]); end end end file_labels = cat(1, listener_file_labels, speaker_file_labels); video_files = cat(1, listener_vid_files, speaker_vid_files); parfor i=1:numel(file_labels) [~,short_name,vid_ext] = fileparts(video_files{i}); command = executable; inputFile = video_files{i}; outputFile = [outputDir short_name '.txt']; outputEaf = [outputDir short_name '.eaf']; command = cat(2, command, [' -f "' inputFile '" -of "' outputFile '"']); if(verbose) outputVideo = [outputDir short_name '.track.avi']; command = cat(2, command, [' -ov "' outputVideo '"']); end command = cat(2, command, [' -no2Dfp -no3Dfp -noMparams -noAUs -noGaze']); dos(command); copyfile(file_labels{i}, outputEaf); copyfile(video_files{i}, [outputDir '/' short_name, '.mp4']); end