pjp1
April 17, 2019, 1:38pm
1
~$ snap install ffmpeg
ffmpeg 4.1 from Snapcrafters installed
ffmpeg instatted as a snap but getting an issue accessing /dev/video0 - a USB webcam that is mounted correctly
admin@5X8YM42:~$ ffmpeg -list_devices true -i /dev/video0
Error: unable to open display
ffmpeg version n4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609
configuration: --prefix= --prefix=/usr --disable-debug --disable-doc --disable-static --enable-avisynth --enable-cuda --enable-cuvid --enable-libdrm --enable-ffplay --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopus --enable-libpulse --enable-sdl2 --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-nonfree --enable-nvenc --enable-omx --enable-openal --enable-opencl --enable-runtime-cpudetect --enable-shared --enable-vaapi --enable-vdpau --enable-version3 --enable-xlib
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
[video4linux2,v4l2 @ 0x1c238c0] Cannot open video device /dev/video0: Permission denied
/dev/video0: Permission denied
sudo makes no difference
$ ls -l /dev/video0
crw-rw---- 1 root video 81, 0 Apr 17 13:28 /dev/video0
I’ve seen some posts about adding the user to the video group but cannot do this on ubuntu core due to read-only file system
I’m wondering if it’s an interfaces issue with the snap?
OS is ubuntu core so
Any help would be appreciated
popey
April 17, 2019, 1:52pm
2
snap connect ffmpeg:camera
should sort that out.
pjp1
April 17, 2019, 1:58pm
3
Perfect! That worked a treat. Still having permission issues writing the file out to certain directories but that should be easily solved. Thanks again!
pjp1
April 17, 2019, 2:08pm
4
Actually perhaps you might know quickly the answer to that…
sudo ffmpeg -i /dev/video0 /home/admin/output.mp4
Error: unable to open display
ffmpeg version n4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609
configuration: --prefix= --prefix=/usr --disable-debug --disable-doc --disable-static --enable-avisynth --enable-cuda --enable-cuvid --enable-libdrm --enable-ffplay --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopus --enable-libpulse --enable-sdl2 --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-nonfree --enable-nvenc --enable-omx --enable-openal --enable-opencl --enable-runtime-cpudetect --enable-shared --enable-vaapi --enable-vdpau --enable-version3 --enable-xlib
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, video4linux2,v4l2, from '/dev/video0':
Duration: N/A, start: 1910.514725, bitrate: 147456 kb/s
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 147456 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
/writable/user-data/admin/output.mp4: Permission denied
Is there an interfaces connect that can give the ffmpeg permission to write to home?
popey
April 17, 2019, 2:13pm
5
What’s the reason for using sudo? Can you not just ffmpeg -i /dev/video0 ~/output.mp4
?
pjp1
April 17, 2019, 2:54pm
6
Without sudo:
$ ffmpeg -i /dev/video0 ~/output.mp4
Error: unable to open display
ffmpeg version n4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609
configuration: --prefix= --prefix=/usr --disable-debug --disable-doc --disable-static --enable-avisynth --enable-cuda --enable-cuvid --enable-libdrm --enable-ffplay --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopus --enable-libpulse --enable-sdl2 --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-nonfree --enable-nvenc --enable-omx --enable-openal --enable-opencl --enable-runtime-cpudetect --enable-shared --enable-vaapi --enable-vdpau --enable-version3 --enable-xlib
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
[video4linux2,v4l2 @ 0x9d3800] Cannot open video device /dev/video0: Permission denied
/dev/video0: Permission denied
With sudo
$ sudo ffmpeg -i /dev/video0 ~/output.mp4
Error: unable to open display
ffmpeg version n4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609
configuration: --prefix= --prefix=/usr --disable-debug --disable-doc --disable-static --enable-avisynth --enable-cuda --enable-cuvid --enable-libdrm --enable-ffplay --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopus --enable-libpulse --enable-sdl2 --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-nonfree --enable-nvenc --enable-omx --enable-openal --enable-opencl --enable-runtime-cpudetect --enable-shared --enable-vaapi --enable-vdpau --enable-version3 --enable-xlib
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, video4linux2,v4l2, from '/dev/video0':
Duration: N/A, start: 5655.457521, bitrate: 147456 kb/s
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 147456 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
/home/admin/output.mp4: Permission denied
popey
April 17, 2019, 2:56pm
7
Ah! I missed the detail that you’re using Ubuntu Core, sorry.
Error: unable to open display
There’s no X11 on Core, and I suspect ffmpeg is built to require it (possibly via pulseaudio). Perhaps @Wimpress can confirm.
pjp1
April 17, 2019, 3:12pm
8
I’ve gotten it recording to output to /tmp/output.mkv without issue, including that display message coming up. I’m running it on a displayless Dell Edge Gateway device.
Command:
sudo ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -i /dev/video0 /tmp/output.mkv
File goes to /tmp/snap.1000_ffmpeg_jburLN/tmp but I can copy it off (with sudo) and it plays fine.
Next steps is to get it writing to a nicer area of my file system so that’s the last basic problem I need to solve.
pjp1
April 17, 2019, 3:31pm
9
Looks like a file create issue rather than file write. Because if I touch a ~/output.mkv file and run ffmpeg it asks be if I want to overwrite and works fine.
pjp1
April 17, 2019, 3:39pm
10
Installing ffmpeg with devmode works. Not completely ideal though. Would welcome any thoughts though.
ogra
April 18, 2019, 9:36am
11
note that the home interface does never get auto-connected on core installs for security reasons, you need to manually call snap connect ffmpeg:home
to give it write access to a home dir …
you might also want to look for other interfaces you want to connect with the snap interfaces ffmpeg
or the new snap connections ffmpeg
commands…
1 Like