[M1 Mac, Big Sur 11.6.8, clang 13.0.0, FLTK 1.3.8, NO IDE]
ビデオツールアプリにリサイズ機能を搭載しました。
簡単な動画加工にはFinal Cut Proではなくこのツールを使えるよう、さらに機能を充実させていきたいです。
void resize(){
char cmd[512];
char count[100];
const char* del = ".";
// 元ファイルパス取得
const char* path = input_line->value();
cout << "path "<< path << endl;
// stringへ変換
string path_str = string(path);
// 拡張子を削除
string prefix0 = spt.splitJoin(path_str, del, 0, -2);
cout << "prefix0 "<< prefix0 << endl;
prefix0.pop_back();
// _resizedを付加
string prefix = prefix0 + "_resized";
// 拡張子を付加
vector<string> list_path = spt.splits(path_str, del);
string extension = list_path[list_path.size()-1];
cout << "extension "<< extension << endl;
string newPath = prefix + "." + extension;
cout << "newPath "<< newPath << endl;
// リサイズcmd作成
sprintf(cmd,"/opt/homebrew/Cellar/ffmpeg/5.1/bin/ffmpeg -i %s -s %d:%d %s 2>&1 && echo ffmpeg完了", path_str.c_str(), width2_int, height2_int, newPath.c_str());
cout << "cmd: "<< cmd << endl;
// cmdをtextBufferに追記
string cmd_str(cmd, 512);
string cmdstr2 = "cmd: " + cmd_str + "\n";
textBuffer->append(cmdstr2.c_str());
// 文字数と行数をカウントしtextBufferに追記
int length_buf = textBuffer -> length();
int num_lines = textBuffer -> count_lines(0, length_buf);
printf("length_buf %d num_lines %d\n",length_buf,num_lines);
sprintf(count, "length_buf %d num_lines %d\n",length_buf,num_lines);
textBuffer->append(count);
// textDisplayを最終行表示する
textDisplay->buffer(textBuffer);
textDisplay->scroll(num_lines + 1, 0);
// cmd実行
outputTextMake(cmd);
// browserを最終行表示する
browser->load(outputText);
int line_num = browser->size();
browser->bottomline(line_num);
cout << "リサイズ完了!" << endl;
}