video_tools.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. include("connectSQL_Component.php");
  3. require '../../vendor/autoload.php';
  4. $ffmpeg = FFMpeg\FFMpeg::create([
  5. 'ffmpeg.binaries' => 'C:\FFmpeg\bin\ffmpeg.exe',
  6. 'ffprobe.binaries' => 'C:\FFmpeg\bin\ffprobe.exe',
  7. ]);
  8. $GLOBALS["ffmpeg"] = $ffmpeg;
  9. $GLOBALS["conn"] = $conn;
  10. $root = '../../assets';
  11. $folder = 'videos';
  12. FindPath($root, $folder, $ffmpeg);
  13. sqlsrv_close($conn);
  14. function FindPath($root, $folder, $ffmpeg)
  15. {
  16. /*$sql = "SELECT * FROM [BIMComponents].[dbo].[Video_Node] Where [dir_name] = '" . $folder . "';";
  17. $fetchResult = sqlsrv_query($GLOBALS["conn"], $sql);
  18. $row = sqlsrv_fetch_array($fetchResult, SQLSRV_FETCH_ASSOC);*/
  19. $rootPath = $root . '/' . $folder;
  20. $paths = array_diff(scandir($root . '/' . $folder), array('.', '..', 'Thumbs.db'));
  21. echo ("<ul>");
  22. foreach ($paths as $path) {
  23. if (str_contains($path, '.')) {
  24. if (str_contains(strtolower($path), '.mp4')) {
  25. echo ("<li data-jstree='{ " . '"type" : "file"' . " }' >");
  26. $title = explode(".", $path)[0];
  27. $file_path = substr($rootPath, 4) . "/" . $path;
  28. $path = "title:" . $title . "path:" . $file_path . " dir_id:" . $folder;
  29. echo ($path);
  30. echo ("</li>");
  31. $sql = "BEGIN
  32. IF NOT EXISTS (SELECT * FROM [BIMComponents].[dbo].[Video_Table] WHERE [file_path] = '" . $file_path . "')
  33. BEGIN
  34. INSERT INTO [BIMComponents].[dbo].[Video_Table] ([title],[file_path],[file_name],[dir_name]) VALUES ('" . $title . "','" . $file_path . "','" . $title . "','" . $folder . "')
  35. END
  36. END";
  37. $fetchResult = sqlsrv_query($GLOBALS["conn"], $sql);
  38. if (!file_exists("../." . substr($file_path, 0, -4) . ".gif")) {
  39. $video = $ffmpeg->open("../." . $file_path);
  40. $video->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(40))
  41. ->save("../." . substr($file_path, 0, -4) . ".jpg");
  42. $video
  43. ->gif(FFMpeg\Coordinate\TimeCode::fromSeconds(40), new FFMpeg\Coordinate\Dimension(640, 480), 5)
  44. ->save("../." . substr($file_path, 0, -4) . ".gif");
  45. }
  46. }
  47. } else {
  48. echo ("<li>");
  49. echo ("dir_name: " . $path . "parent: " . $folder);
  50. $sql = "BEGIN
  51. IF NOT EXISTS (SELECT * FROM [BIMComponents].[dbo].[Video_Node] WHERE [dir_name] = 'videos')
  52. BEGIN
  53. INSERT INTO [BIMComponents].[dbo].[Video_Node] ([dir_name],[parent]) VALUES ('videos','.')
  54. END
  55. END";
  56. $fetchResult = sqlsrv_query($GLOBALS["conn"], $sql);
  57. $sql = "BEGIN
  58. IF NOT EXISTS (SELECT * FROM [BIMComponents].[dbo].[Video_Node] WHERE [dir_name] = '" . $path . "')
  59. BEGIN
  60. INSERT INTO [BIMComponents].[dbo].[Video_Node] ([dir_name],[parent]) VALUES ('" . $path . "','" . $folder . "')
  61. END
  62. END";
  63. $fetchResult = sqlsrv_query($GLOBALS["conn"], $sql);
  64. FindPath($rootPath, $path, $ffmpeg);
  65. echo ("</li>");
  66. }
  67. }
  68. echo ("</ul>");
  69. }