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?

użytkownik23945
źródło
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.

maniak
źródło
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,