# Command line exec node ffmpeg using NR in Docker

**URL:** <https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727>\
**Category:** General\
**Created:** [3 December 2019 08:32 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727 "2019-12-03T08:32:03Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![GChapo](https://avatars.discourse-cdn.com/v4/letter/g/2acd7d/32.png) [@GChapo](https://discourse.nodered.org/u/GChapo)\
**Post date:** [3 December 2019 08:32 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/1 "2019-12-03T08:32:03Z")

</div>

I'm struggling to run a command in exec node and I need some pointers please;

I have created a bash script and can successfully run an ffmpeg command with my script named ffmpegrun.sh as below;

 ![cli](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/e/e17816e6a2b89eb4dd5619ad0971121005d34c4f.jpeg)

However, when I run in node red as below;

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/0/09c4fe64dd94d86a9f4071e122d587dd333fb504.png)

 ![node](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/1/1cc2f6fdad1e87849fb4e599e16611959edd6029.jpeg)

I get the following errors;

![debug](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/d/d28ceaca4fac7cb3348b81b832b9e6cf806c85f2.jpeg)

Can anybody assist please?

Thanks in advance

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [3 December 2019 10:27 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/2 "2019-12-03T10:27:05Z")

</div>

In the exec node, move what you have in the `Command` option to the `extra input parameters` and in the `Command` option enter `bash`

---

<div class="post-metadata">

**Author:** ![GChapo](https://avatars.discourse-cdn.com/v4/letter/g/2acd7d/32.png) [@GChapo](https://discourse.nodered.org/u/GChapo)\
**Post date:** [3 December 2019 10:33 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/3 "2019-12-03T10:33:58Z")

</div>

Thanks for coming back to me.

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/d/dec1ca8df64ee8399908a670c455773c666984a8.png)

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [3 December 2019 12:15 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/4 "2019-12-03T12:15:45Z")

</div>

Hmmm it is working for me with a test script  
can you try this - add a new script to the /home/pi/bin folder called test.sh with the following

```auto
#!/bin/bash
echo "Hello World"

```

then issue a `sudo chmod u+x test.sh` to make it executable. Then try this test flow:

```auto
[{"id":"9649322b.090d8","type":"inject","z":"33c087f3.e5e528","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":260,"y":220,"wires":[["b3333aab.d88508"]]},{"id":"3c8850bb.6f3bc8","type":"debug","z":"33c087f3.e5e528","name":"Standard output","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":780,"y":160,"wires":[]},{"id":"b3333aab.d88508","type":"exec","z":"33c087f3.e5e528","command":"bash","addpay":false,"append":"/home/pi/bin/test.sh","useSpawn":"false","timer":"","oldrc":false,"name":"","x":500,"y":220,"wires":[["3c8850bb.6f3bc8"],["340ee91d.b9a45e"],["a5accb3e.b6f62"]]},{"id":"340ee91d.b9a45e","type":"debug","z":"33c087f3.e5e528","name":"Standard error","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":780,"y":220,"wires":[]},{"id":"a5accb3e.b6f62","type":"debug","z":"33c087f3.e5e528","name":"Return code","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":770,"y":280,"wires":[]}]

```

---

<div class="post-metadata">

**Author:** ![GChapo](https://avatars.discourse-cdn.com/v4/letter/g/2acd7d/32.png) [@GChapo](https://discourse.nodered.org/u/GChapo)\
**Post date:** [3 December 2019 12:30 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/5 "2019-12-03T12:30:30Z")

</div>

Umm, not working either my end 😬

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/4/454c0933cfcaf1dd2de2c247e425767046467845.png)

however fine, when cli input

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/8/8533c463fc10a273c42620e05f6d1d537e257a39.png)

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [3 December 2019 12:35 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/6 "2019-12-03T12:35:07Z")

</div>

what are the permissions on the /home/pi/bin directory ? maybe it's only visible to pi user.

---

<div class="post-metadata">

**Author:** ![GChapo](https://avatars.discourse-cdn.com/v4/letter/g/2acd7d/32.png) [@GChapo](https://discourse.nodered.org/u/GChapo)\
**Post date:** [3 December 2019 12:36 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/7 "2019-12-03T12:36:12Z")

</div>

How do I check that please?

---

<div class="post-metadata">

**Author:** ![GChapo](https://avatars.discourse-cdn.com/v4/letter/g/2acd7d/32.png) [@GChapo](https://discourse.nodered.org/u/GChapo)\
**Post date:** [3 December 2019 12:38 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/8 "2019-12-03T12:38:37Z")

</div>

just found permissions;  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/3/3fe39f79077e4c6612fd831637457934c9c5cc49.png)

---

<div class="post-metadata">

**Author:** ![GChapo](https://avatars.discourse-cdn.com/v4/letter/g/2acd7d/32.png) [@GChapo](https://discourse.nodered.org/u/GChapo)\
**Post date:** [3 December 2019 12:40 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/9 "2019-12-03T12:40:18Z")

</div>

Tried on another pi (pi3 b+) and the test.sh worked. Differences between both is Pi4 buster and in Docker?

---

<div class="post-metadata">

**Author:** ![GChapo](https://avatars.discourse-cdn.com/v4/letter/g/2acd7d/32.png) [@GChapo](https://discourse.nodered.org/u/GChapo)\
**Post date:** [3 December 2019 12:53 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/10 "2019-12-03T12:53:05Z")

</div>

Just tried my original bash script on the non docker (pi3) and it also works??😒

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [3 December 2019 14:39 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/11 "2019-12-03T14:39:35Z")

</div>

See mentioning docker at the beginning would have been helpful.

So this sounds like a docker permission issue and I’ll have to bow out now since I’ve never used docker.

---

<div class="post-metadata">

**Author:** ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)\
**Post date:** [3 December 2019 15:51 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/12 "2019-12-03T15:51:45Z")

</div>

> [@zenofmud](#):
>
> See mentioning docker at the beginning would have been helpful.

Altered now

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [3 December 2019 17:18 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/13 "2019-12-03T17:18:39Z")

</div>

The whole point of docker is that the container file system is isolated from the main computer file system - so unless you have mounted the relevant directories so they are accessible they can't see each other. Is ffmpeg installed inside the docker container ? If not then that is also unlikely to run.

---

<div class="post-metadata">

**Author:** ![GChapo](https://avatars.discourse-cdn.com/v4/letter/g/2acd7d/32.png) [@GChapo](https://discourse.nodered.org/u/GChapo)\
**Post date:** [3 December 2019 17:43 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/14 "2019-12-03T17:43:31Z")

</div>

ffmpeg is installed with buster and sits outside any docker container. Node Red is inside, so I guess the issue is that the exec command is coming from inside a container?

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [3 December 2019 17:59 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/15 "2019-12-03T17:59:11Z")

</div>

Unless you have a need to use Docker then one solution is to remove the docker version and install directly on the Pi using the install technique from the docs  
[https://nodered.org/docs/getting-started/raspberrypi](https://nodered.org/docs/getting-started/raspberrypi)

---

<div class="post-metadata">

**Author:** ![GChapo](https://avatars.discourse-cdn.com/v4/letter/g/2acd7d/32.png) [@GChapo](https://discourse.nodered.org/u/GChapo)\
**Post date:** [4 December 2019 06:59 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/16 "2019-12-04T06:59:44Z")

</div>

> [@dceejay](#):
>
> mounted the relevant directories so they are accessible

Ok, thanks for your help everyone.

---

<div class="post-metadata">

**Author:** ![thejollypop](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/thejollypop/32/36597_2.png) [@thejollypop](https://discourse.nodered.org/u/thejollypop)\
**Post date:** [15 February 2021 19:19 UTC](https://discourse.nodered.org/t/command-line-exec-node-ffmpeg-using-nr-in-docker/18727/17 "2021-02-15T19:19:11Z")

</div>

Sorry for reopening this issue, but I'm also struggling with it badly.  
I'm using the excellent [jrottenberg/ffmpeg](https://hub.docker.com/r/jrottenberg/ffmpeg/) docker image and trying to mount it to the NR's `/data` directory, so it would be accessible from the exec node, like that:

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/2/d21a3bb21e118e8594c244e69cc33e8777a56b99.png)

I'm mounting the following docker images, to the same /data directory.

```auto
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red

docker run -it -v node_red_data:/data --name myffmpeg jrottenberg/ffmpeg

```

````auto
REPOSITORY TAG IMAGE ID CREATED SIZE
nodered/node-red latest c060f9cb7fd5 11 days ago 456MB
jrottenberg/ffmpeg latest 2100506dfbea 24 months ago 218MB```

````

Maybe I'm missing something here or doing it wrong, because when running in bash ('docker exec -it mynodered /bin/bash') the following command:

```auto
jrottenberg/ffmpeg -version

```

instead of:

```auto
docker run jrottenberg/ffmpeg -version

```

I get nothing. Thoughts? thanks!
