Page 1 of 1

Crash when started by php script.

Posted: 04 May 2009 12:03
by hillbilly1980
I have a camera setup that i'm running that when a user wants to record it fires up and controls an mosiac setup in vlc. When i start the vlc server as any user, even the www-data in a shell it works just fine. When I go a step further and have a php script start the vlc server using the system() function it gets to a specific point and crashes.

When it works, aka logged in as normal user over ssh, su -u www-data, run batch which contains cvlc command

Code: Select all

0x8815a78] [Media: record_session] main filter debug: looking for video filter2 module: 20 candidates [0x8815a78] [Media: record_session] swscale filter debug: 1280x720 chroma: RGBA -> 1280x720 chroma: I420 with scaling using Bicubic (good quality) [0x8815a78] [Media: record_session] main filter debug: using video filter2 module "swscale" [0x8815a78] [Media: record_session] main filter debug: TIMER module_need() : 1.321 ms - Total 1.321 ms / 1 intvls (Avg 1.321 ms) [0xb3001648] main decoder debug: removing module "png" [0x8815a78] main filter debug: removing module "swscale"

When it faults, apache run by www-data, php calling same batch file

Code: Select all

[0xb3886a10] [Media: record_session] main filter debug: looking for video filter2 module: 20 candidates [0xb3886a10] [Media: record_session] swscale filter debug: 1280x720 chroma: RGBA -> 1280x720 chroma: I420 with scaling using Bicubic (good quality) [0xb3886a10] [Media: record_session] main filter debug: using video filter2 module "swscale" [0xb3886a10] [Media: record_session] main filter debug: TIMER module_need() : 1.850 ms - Total 1.850 ms / 1 intvls (Avg 1.850 ms) Segmentation fault
Line running batch file php

Code: Select all

if($i == 1 ) shell_exec("nohup /usr/local/Gideo2/bin/start.sh > /usr/local/Gideo2/tmp/server.log 2>&1 &");
Batch file being run

Code: Select all

#!/bin/sh cat /dev/null > /usr/local/Gideo2/tmp/debug.log cp /usr/local/Gideo2/etc/stream.conf /usr/local/Gideo2/tmp/stream.conf cvlc -I telnet --telnet-password xxxxxx \ --vlm-conf /usr/local/Gideo2/etc/stream.conf -vvvv --color --file-logging --ttl 12 --udp-caching 100000 \ --sout-mux-caching 250000 --logfile /usr/local/Gideo2/tmp/debug.log --extraintf http,logger \ --sout-keep \ --sout-transcode-high-priority --sout-transcode-threads 4
VLM config file being loaded

Code: Select all

del all new record_session broadcast enabled setup record_session input "fake://" option "fake-file=/usr/local/Gideo2/lib/background-light-branded.png" option "fake-ar 4:3" option "fake-width=1280" option "fake-height=720" setup record_session output #transcode{sfilter=mosaic,vcodec=h264,vb=512,scale=.5,threads=4,audio-sync=1}:bridge-in:duplicate{dst=std{access=file,mux=mp4,dst="/usr/local/Gideo2/tmp/record_session.mp4"}} #setup record_session output #transcode{sfilter=mosaic,vcodec=h264,vb=512,scale=.5,threads=4,audio-sync=1}:bridge-in:duplicate{dst=std{access=file,mux=mp4,dst="/usr/local/Gideo2/tmp/record_session.mp4"},dst=rtp{mux=ps,dst=239.255.12.42,port=1234,sap,name="TestStream"}} #setup record_session output #transcode{sfilter=mosaic,vcodec=h264,vb=512,scale=.5,threads=4,audio-sync=1,venc=x264{keyint=120,bpyramid,chroma-me,me-range=8,ref=1,ratetol=1.0,8x8dct,mixed-refs,direct=auto,direct-8x8=-1,non-deterministic,scenecut=50}}:bridge-in:duplicate{dst=std{access=file,mux=mp4,dst="/usr/local/Gideo2/tmp/record_session.mp4"}} #setup record_session option sub-filter=mosaic # Mosaic options setup record_session option mosaic-alpha=255 setup record_session option mosaic-height=720 setup record_session option mosaic-width=1280 #setup record_session option mosaic-align=5 #setup record_session option mosaic-xoffset=10 #setup record_session option mosaic-yoffset=10 setup record_session option mosaic-vborder=5 setup record_session option mosaic-hborder=10 setup record_session option mosaic-position=2 setup record_session option mosaic-rows=1 setup record_session option mosaic-cols=2 setup record_session option mosaic-order=Camera1,Camera2,Camera2Primary,Camera1Primary setup record_session option mosaic-delay=10000 setup record_session option mosaic-keep-picture setup record_session option mosaic-keep-aspect-ratio setup record_session option mosaic-offsets=18,16,640,16,214,4,214,4 # Setup new vlm redial # new camera1 broadcast enabled setup camera1 input rtsp://root:greenlight@192.168.3.227/mpeg4/1/media.amp setup camera1 output #mosaic-bridge{id=Camera1,width=624} setup camera1 option no-sout-audio new camera2 broadcast enabled setup camera2 input rtsp://root:greenlight@192.168.3.226/mpeg4/1/media.amp setup camera2 output #mosaic-bridge{id=Camera2,width=624} #setup camera2 option rtsp-tcp setup camera2 option no-sout-audio new camera1primary broadcast enabled setup camera1primary input rtsp://root:greenlight@192.168.3.227/mpeg4/1/media.amp setup camera1primary output #mosaic-bridge{id=Camera1Primary,height=640,width=852} #setup camera1primary option rtsp-tcp setup camera1primary option no-sout-audio new camera2primary broadcast enabled setup camera2primary input rtsp://root:greenlight@192.168.3.226/mpeg4/1/media.amp setup camera2primary output #mosaic-bridge{id=Camera2Primary,height=640,width=852} #setup camera2primary option rtsp-tcp setup camera2primary option no-sout-audio new audio broadcast enabled setup audio input rtsp://root:greenlight@192.168.3.226/mpeg4/1/media.amp setup audio output #transcode{acodec=mp4a,ab=64,samplerate=11025,channels=1}:duplicate{dst=bridge-out,dst=std{access=file,mux=mp4,dst="/usr/local/Gideo2/tmp/record_session-audio.mp4"} #setup audio output #transcode{acodec=mp4a,ab=64,afilter=mono,samplerate=22050,channels=1}:duplicate{dst=bridge-out{id=401},dst=standard{access=file,mux=mp4,dst="/usr/local/Gideo2/tmp/record_session-audio.mp4"}etup audio output #duplicate{dst={transcode{acodec=mp3,ab=16,channels=1}:bridge-out{id=3}},select=audio,dst=bridge-out{id=3}} setup audio option no-sout-video

Re: Crash when started by php script.

Posted: 04 May 2009 19:43
by RĂ©mi Denis-Courmont
PHP scripts typically have usage resource limits and/or security checks (SElinux...) that prevent VLC from working.