SpringBootでffmpegを統合する方法
ネイティブにFFmpegを統合するには、Java-FFmpegライブラリをご使用ください。以下に統合手順を示します。
- pom.xml
<dependencies>
<!-- Other dependencies -->
<dependency>
<groupId>com.github.kokorin.jaffree</groupId>
<artifactId>jaffree</artifactId>
<version>3.3</version>
</dependency>
</dependencies>
- FFmpegサービス
import java.io.IOException;
import com.github.kokorin.jaffree.ffmpeg.*;
@Service
public class FFmpegService {
public void executeFFmpegCommand(String inputFilePath, String outputFilePath) throws IOException {
FFmpeg.atPath()
.addInput(Input.fromPath(inputFilePath))
.addOutput(Output.toPath(outputFilePath))
.execute();
}
}
executeFFmpegCommandメソッドは、上記のコードでは入力ファイルパスと出力ファイルパスを引数として取り、Java-FFmpegライブラリを使用してFFmpegコマンドを実行します。
- FFmpegサービス
@RestController
public class VideoController {
@Autowired
private FFmpegService ffmpegService;
@PostMapping("/convert")
public void convertVideo(@RequestParam("inputFile") MultipartFile inputFile, @RequestParam("outputFile") String outputFile) throws IOException {
Path inputFilePath = Files.createTempFile("input", inputFile.getOriginalFilename());
inputFile.transferTo(inputFilePath);
ffmpegService.executeFFmpegCommand(inputFilePath.toString(), outputFile);
}
}
上記のコードでは、convertVideoメソッドは入力ファイルと出力ファイルの引数を受け取り、入力ファイルを一時ファイルに保存し、ffmpegServiceを呼び出してFFmpegコマンドを実行し、入力ファイルをoutputFileに変換します。
掲載されているコード例は参考用です。実際の環境に合わせて適切にカスタマイズしてください。