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.