質問編集履歴
1
試したこと の追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,9 +13,11 @@
|
|
13
13
|
?>
|
14
14
|
```
|
15
15
|
|
16
|
+
シェルスクリプトはPHPファイルと同ディレクトリにあります。
|
17
|
+
|
16
18
|
```sh
|
17
19
|
#!/bin/bash
|
18
|
-
#rec_start.sh
|
20
|
+
#filename: rec_start.sh
|
19
21
|
cd /home/pi/mjpg-streamer/mjpg-streamer-experimental/REC
|
20
22
|
ffmpeg -i http://127.0.0.1:8080/?action=stream -an -vcodec flv $(date "+%Y_%m_%d_%H_%M_%S").flv
|
21
23
|
|
@@ -29,12 +31,17 @@
|
|
29
31
|
```
|
30
32
|
|
31
33
|
### 試したこと
|
34
|
+
rec_start.shをコマンドライン上で実行した場合、継続して処理が実行され続けることから、
|
35
|
+
PHP関数のecec()だとハングしている?と仮定しました。
|
32
36
|
|
37
|
+
https://www.php.net/function.exec より引用
|
38
|
+
> プログラムがこの関数で始まる場合、 バックグラウンドで処理を続けさせるには、 プログラムの出力をファイルや別の出力ストリームにリダイレクトする必要があります。 そうしないと、プログラムが実行を終えるまで PHP はハングしてしまいます。
|
39
|
+
|
33
40
|
sh のバックグラウンド実行 (コマンドの後ろに、&アンドをつけて実行)
|
34
|
-
→ $return_var = 0 となったが動画ファイルは生成されていませんでした。
|
35
41
|
|
36
42
|
```sh
|
37
43
|
cd /home/pi/mjpg-streamer/mjpg-streamer-experimental/REC
|
38
44
|
ffmpeg -i http://127.0.0.1:8080/?action=stream -an -vcodec flv $(date "+%Y_%m_%d_%H_%M_%S").flv &
|
39
45
|
|
40
|
-
```
|
46
|
+
```
|
47
|
+
実行結果: $return_var = 0 となったが動画ファイルは生成されていませんでした。
|