Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Ścieżka dostępu ffmpeg
Mis323
post 29.08.2019, 22:06:46
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 19.08.2019

Ostrzeżenie: (0%)
-----


Cześć,
Zainstalowałem na xamppie ffmpeg. Mam bazę danych gdzie mam filmy,
chciałbym za pomocą ffmpeg zrobić skróty tych filmów. Problem polega na tym iż ffmpeg nie chce odczytać ścieżki dostępu z bazy danych czy ze stałej.
Działa tylko
  1. exec('ffmpeg -i filmy/0d53b415315578cf6d6e4f7650268fcf.mp4 -ss 00:03:00 -t 00:00:15 test/test.mp4');


Jeśli przypisze ścieżkę dostępu do stałej to nic się nie dzieje.

  1. $nazwa = 'filmy/0d53b415315578cf6d6e4f7650268fcf.mp4';
  2.  
  3.  
  4. exec('ffmpeg -i ".$nazwa." -ss 00:03:00 -t 00:00:15 test/test.mp4');
  5.  
  6.  
Go to the top of the page
+Quote Post
kreatiff
post 30.08.2019, 11:34:46
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

Ostrzeżenie: (0%)
-----


Źle używasz cudzysłowu.
Albo:
  1. exec('ffmpeg -i ' . $nazwa . ' -ss 00:03:00 -t 00:00:15 test/test.mp4');

albo:
  1. exec("ffmpeg -i $nazwa -ss 00:03:00 -t 00:00:15 test/test.mp4");

Zwróć uwagę na apostrofy i cudzysłowy w obu przypadkach.
Go to the top of the page
+Quote Post
Mis323
post 30.08.2019, 14:25:33
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 19.08.2019

Ostrzeżenie: (0%)
-----


Cytat(kreatiff @ 30.08.2019, 12:34:46 ) *
Źle używasz cudzysłowu.
Albo:
  1. exec('ffmpeg -i ' . $nazwa . ' -ss 00:03:00 -t 00:00:15 test/test.mp4');

albo:
  1. exec("ffmpeg -i $nazwa -ss 00:03:00 -t 00:00:15 test/test.mp4");

Zwróć uwagę na apostrofy i cudzysłowy w obu przypadkach.


Sprawdzałem wczoraj różne opcje niestety nic to nie zmieniło, spróbuje jeszcze raz jak napisałeś.
Go to the top of the page
+Quote Post
viking
post 30.08.2019, 14:44:14
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Sprawdziłeś odpowiedź otrzymaną z wykonania tego polecenia?


--------------------
Go to the top of the page
+Quote Post
Mis323
post 30.08.2019, 22:28:54
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 19.08.2019

Ostrzeżenie: (0%)
-----


Cytat(kreatiff @ 30.08.2019, 12:34:46 ) *
Źle używasz cudzysłowu.
Albo:
  1. exec('ffmpeg -i ' . $nazwa . ' -ss 00:03:00 -t 00:00:15 test/test.mp4');

albo:
  1. exec("ffmpeg -i $nazwa -ss 00:03:00 -t 00:00:15 test/test.mp4");

Zwróć uwagę na apostrofy i cudzysłowy w obu przypadkach.


Super 1 przykład działa! dziękuje, mam jeszcze jedno pytanie

  1.  
  2. <?php
  3. require ('vendor/autoload.php');
  4. include('db/connection.php'); // polaczenie z baza danych
  5.  
  6. $nazwa = 'filmy/0d53b415315578cf6d6e4f7650268fcf.mp4';
  7.  
  8. exec('ffmpeg -i ' . $nazwa . ' -ss 00:03:00 -t 00:00:15 test/test2222.mp4');
  9.  
  10.  
  11. $zapytanie = $pdo->prepare('SELECT * FROM baza' );
  12. $zapytanie->execute(); // wykonaj zayptanie do bazy danych
  13. while($rekord = $zapytanie->fetch()) {
  14.  
  15.  
  16. exec('ffmpeg -i ' . $rekord['url'] . ' -ss 00:03:00 -t 00:00:15 test/' . $rekord['url'] . '');
  17. echo $rekord[url];
  18. }
  19.  
  20.  
  21. ?>
  22.  


Niestety ale po wykonaniu tego kodu nic się nie dzieje

  1. exec('ffmpeg -i ' . $rekord['url'] . ' -ss 00:03:00 -t 00:00:15 test/' . $rekord['url'] . '');

jak usunę '' i wpisze samo $rekord[url] to wyskakuje błąd

Warning: Use of undefined constant url - assumed 'url' (this will throw an Error in a future version of PHP)

Do tej pory wszędzie pisałem $rekord[url] i było wszystko w porządku ktoś wyjaśni w czym jest problem ewentualnie odeśle do jakiegoś manuala?
Go to the top of the page
+Quote Post
Neutral
post 30.08.2019, 22:54:51
Post #6





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

Ostrzeżenie: (0%)
-----


Sprawdź może to manual.

Przykład

  1. <?php
  2. $hello = 'hello';
  3.  
  4. echo "${hello}!";
  5. ?>
Go to the top of the page
+Quote Post
kreatiff
post 30.08.2019, 23:02:40
Post #7





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

Ostrzeżenie: (0%)
-----


Sprawdź najpierw w pętli, czy $rekord['url'] (apostrofy powinny być, a w przyszłych wersjach PHP będą musiały być) istnieje i wskazuje na plik do obróbki.
A jak poprawnie pobiera ścieżkę dostępu do pliku, to nie wiem, może w ścieżce output dla polecenia ffmpeg nie można podawać katalogów, które nie istnieją? A tak właśnie jest (nie istnieje katalog "filmy" w katalog "test")?
Dodaj drugi parametr do exec() https://www.php.net/manual/en/function.exec.php i zobacz co tam się wyświetla.

Ten post edytował kreatiff 30.08.2019, 23:03:40
Go to the top of the page
+Quote Post
Mis323
post 30.08.2019, 23:03:41
Post #8





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 19.08.2019

Ostrzeżenie: (0%)
-----


Dzięki, ale już wiem w czym problem ffmpeg nie może utworzyć nazwy filmów jeśli jest spacja np.
tytuł w bazie danych "szybcy i wściekli" jako nazwę pliku trzeba zastosować np. id ponieważ ta tabela nie zawiera spacji.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 09:48