Polecenie działa z terminala, ale nie z PHP


0

Mogę z powodzeniem uruchomić plik wykonywalny z wiersza poleceń, ale kiedy próbuję zrobić to samo z PHP, exec()rezultat jest inny.

Polecenie to:

ffmpeg -i a.wav -i a.m2v a.mpeg

Podczas uruchamiania z PHP, Movie Player po prostu stwierdza „Plik nie zawiera odtwarzanych strumieni”.

Wiesz dlaczego?


jakie polecenie wykonujesz?
John T

polecenie brzmi „ffmpeg -i a.wav -i a.m2v a.mpeg”
użytkownik23945

i co daje ci ffmpeg?
John T

z terminala plik wyjściowy jest działającym wideo. Jednak uruchamiany z PHP, Movie Player po prostu stwierdza: „Plik nie zawiera odtwarzanych strumieni”.
user23945,

Ale czy generowany jest wynik? I czy ma niezerową długość pliku?
Arjan

Odpowiedzi:


0

Sprawdziłbym zmienne środowiskowe. Być może ffmpeg nie może znaleźć (lub nie może uzyskać dostępu z powodu ograniczeń uprawnień) swoich zasobów po uruchomieniu go z php.


Słuszna uwaga. Plik wykonywalny ffmpeg został jednak znaleziony i może używać plików z odpowiednimi uprawnieniami, czy masz jakieś inne nazwy zmiennych?
user23945,

Nie znam się zbyt dobrze na ffmpeg, może mógłby użyć pewnych zmiennych środowiskowych, które wyraźnie wskazują na katalogi, w których znajduje swoje kodeki?
maniak

Sprawdziłbym również, czy ffmpeg ma opcję „-v”, której można użyć do zwiększenia gadatliwości po uruchomieniu z php. Następnie możesz uchwycić dane wyjściowe i zbadać je, może narzeka tam na coś, czego brakuje.
maniak

Rozwiązałem to! Opcja -v była rzeczywiście przydatna, użyłem ffmpeg -v 5 i otrzymałem przydatne informacje. Problem polegał na tym, że ffmpeg zakończył się po pewnym czasie, być może maksymalny czas phps, nie wiem. Jednak teraz uruchamiam nohup php myfile.php. Dziękuję Ci!
user23945,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.