EnvelopSound / Earshot

Containerized RTMP->DASH transcoder for live-streaming Higher-Order Ambisonic and other multichannel content
GNU General Public License v2.0
67 stars 7 forks source link

execvp error: Exec format error #10

Closed kiblik closed 4 years ago

kiblik commented 4 years ago

Hello,

I wanted to start Earshot in Docker (using docker-compose) with the stream from OBS Music Edition but webtool stacked with:

Loading stream1...
(it may take up to a minute for the stream to warm up...)

I checked DevTools and I found HTTP/404 for loading .mdp file: image

Based on https://github.com/EnvelopSound/Earshot/blob/master/nginx-transcoder/nginx.conf#L52, I check related directory but it was empty:

% docker exec earshot_nginx-rtmp_1 ls -la /opt/data/dash
total 8
drwxrwxrwx    2 nginx    root          4096 Nov 21 14:54 .
drwxr-xr-x    3 root     root          4096 Nov 21 14:54 ..

Because of https://github.com/EnvelopSound/Earshot/blob/master/nginx-transcoder/nginx.conf#L20 I check also log. In log file I found there errors:

% docker exec earshot_nginx-rtmp_1 tail /tmp/nginx_rtmp_ffmpeg_log    
'ffmpeg' '-analyzeduration' '10M' '-i' 'rtmp://127.0.0.1/live/stream1' '-strict' '-2' '-c:a' 'libopus' '-mapping_family' '255' '-window_size' '100' '-max_muxing_queue_size' '1000' '-f' 'dash' '/opt/data/dash/stream1.mpd' 
execvp error: Exec format error
'ffmpeg' '-analyzeduration' '10M' '-i' 'rtmp://127.0.0.1/live/stream1' '-strict' '-2' '-c:a' 'libopus' '-mapping_family' '255' '-window_size' '100' '-max_muxing_queue_size' '1000' '-f' 'dash' '/opt/data/dash/stream1.mpd' 
execvp error: Exec format error
'ffmpeg' '-analyzeduration' '10M' '-i' 'rtmp://127.0.0.1/live/stream1' '-strict' '-2' '-c:a' 'libopus' '-mapping_family' '255' '-window_size' '100' '-max_muxing_queue_size' '1000' '-f' 'dash' '/opt/data/dash/stream1.mpd' 
execvp error: Exec format error
'ffmpeg' '-analyzeduration' '10M' '-i' 'rtmp://127.0.0.1/live/stream1' '-strict' '-2' '-c:a' 'libopus' '-mapping_family' '255' '-window_size' '100' '-max_muxing_queue_size' '1000' '-f' 'dash' '/opt/data/dash/stream1.mpd' 
execvp error: Exec format error
'ffmpeg' '-analyzeduration' '10M' '-i' 'rtmp://127.0.0.1/live/stream1' '-strict' '-2' '-c:a' 'libopus' '-mapping_family' '255' '-window_size' '100' '-max_muxing_queue_size' '1000' '-f' 'dash' '/opt/data/dash/stream1.mpd' 
execvp error: Exec format error

Maybe also log from nginx can be userfull for you:

nginx-rtmp_1   | 2020/11/21 16:03:14 [info] 16#16: *28 client connected '172.19.0.1'
nginx-rtmp_1   | 2020/11/21 16:03:14 [info] 16#16: *28 connect: app='live' args='' flashver='FMLE/3.0 (compatible; FMSc/1.0)' swf_url='rtmp://127.0.0.1:1935/live' tc_url='rtmp://127.0.0.1:1935/live' page_url='' acodecs=0 vcodecs=0 object_encoding=0, client: 172.19.0.1, server: 0.0.0.0:1935
nginx-rtmp_1   | 2020/11/21 16:03:14 [info] 16#16: *28 createStream, client: 172.19.0.1, server: 0.0.0.0:1935
nginx-rtmp_1   | 2020/11/21 16:03:14 [info] 16#16: *28 publish: name='stream1' args='' type=live silent=0, client: 172.19.0.1, server: 0.0.0.0:1935
nginx-rtmp_1   | 2020/11/21 16:03:14 [info] 16#16: *28 notify: publish '127.0.0.1:80/auth', client: 172.19.0.1, server: 0.0.0.0:1935
nginx-rtmp_1   | 127.0.0.1 - - [21/Nov/2020:16:03:14 +0000] "GET /auth?app=live&flashver=FMLE/3.0%20(compatible%3B%20FMSc/1.0)&swfurl=rtmp://127.0.0.1:1935/live&tcurl=rtmp://127.0.0.1:1935/live&pageurl=&addr=172.19.0.1&clientid=28&call=publish&name=stream1&type=live HTTP/1.0" 201 0 "-" "-"
nginx-rtmp_1   | 2020/11/21 16:03:14 [info] 16#16: *28 exec: starting managed child 'ffmpeg', client: 172.19.0.1, server: 0.0.0.0:1935
nginx-rtmp_1   | 2020/11/21 16:03:15 [notice] 16#16: signal 17 (SIGCHLD) received from 377
nginx-rtmp_1   | 2020/11/21 16:03:15 [notice] 16#16: unknown process 377 exited with code 1
nginx-rtmp_1   | 2020/11/21 16:03:15 [info] 16#16: *28 exec: child 377 exited; ignoring, client: 172.19.0.1, server: 0.0.0.0:1935
nginx-rtmp_1   | 2020/11/21 16:03:15 [info] 16#16: *28 exec: terminating child 377, client: 172.19.0.1, server: 0.0.0.0:1935
nginx-rtmp_1   | 2020/11/21 16:03:20 [info] 16#16: *24 client 172.19.0.1 closed keepalive connection
nginx-rtmp_1   | 2020/11/21 16:03:20 [info] 16#16: *28 exec: starting managed child 'ffmpeg', client: 172.19.0.1, server: 0.0.0.0:1935
nginx-rtmp_1   | 2020/11/21 16:03:20 [notice] 16#16: signal 17 (SIGCHLD) received from 378
nginx-rtmp_1   | 2020/11/21 16:03:20 [notice] 16#16: unknown process 378 exited with code 1
nginx-rtmp_1   | 2020/11/21 16:03:20 [info] 16#16: *28 exec: child 378 exited; ignoring, client: 172.19.0.1, server: 0.0.0.0:1935
nginx-rtmp_1   | 2020/11/21 16:03:20 [info] 16#16: *28 exec: terminating child 378, client: 172.19.0.1, server: 0.0.0.0:1935

What can I do?

Thanks

roddylindsay commented 4 years ago

Hi @kiblik,

check the "Troubleshooting" section in the README:

You may be missing key binaries installed by Git LFS. Make sure you have used git clone to get Earshot, not downloaded it a zip file. If you installed Git LFS after cloning this repository, you can run git lfs checkout to inflate the binaries.

kiblik commented 4 years ago

Hi @roddylindsay,

I ran git lfs checkout but unfortunately I ignored output of the command:

% git lfs checkout
Skipped checkout for "nginx-transcoder/bin-alpine/ffmpeg", content not local. Use fetch to download.                                                             
Skipped checkout for "tester/bin/ffmpeg", content not local. Use fetch to download.
Skipped checkout for "tester/resources/16chambixloop.wav", content not local. Use fetch to download.

Running git fetch or git lfs fetch wasn't enough. git lts pull really helped to have the repository in the correct form.

Thanks for the hint. I hope this comment will help somebody with the same issue :)