#11574: FFmpeg fails to handle symlinks to video devide
-----------------------------------+----------------------------------
Reporter: Martmists | Type: defect
Status: new | Priority: normal
Component: ffplay | Version: 7.1
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-----------------------------------+----------------------------------
Summary of the bug:
On Linux, FFmpeg gives an Invalid argument error trying to playback
symlinks to video devices.
How to reproduce:
I have the following udev rule:
{{{
SUBSYSTEM=="video4linux", KERNEL=="video*", ATTRS{idVendor}=="046d",
ATTRS{idProduct}=="0893", ATTRS{serial}=="287A4655", SYMLINK+="webcam"
}}}
This creates a symlink /dev/webcam to, in this case, /dev/video0.
{{{
$ readlink /dev/webcam
video0
}}}
However, FFmpeg fails to play it back:
{{{
$ ffplay -v 9 -loglevel 99 /dev/webcam
ffplay version n7.1.1
...
Initialized opengl renderer.
[AVFormatContext @ 0x728098000c80] Opening '/dev/webcam' for reading
[file @ 0x728098001340] Setting default whitelist 'file,crypto,data'
[AVIOContext @ 0x728098011540] Statistics: 0 bytes read, 0 seeks
/dev/webcam: Invalid argument
}}}
Using the device it points to works fine, however:
{{{
$ ffplay /dev/video0
...
[video playback starts]
}}}
FFmpeg version:
{{{
ffplay version n7.1.1 Copyright (c) 2003-2025 the FFmpeg developers
built with gcc 14.2.1 (GCC) 20250207
configuration: --prefix=/usr --disable-debug --disable-static --disable-
stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto
--enable-fontconfig --enable-frei0r --enable-gmp --enable-gnutls --enable-
gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray
--enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libdvdnav
--enable-libdvdread --enable-libfreetype --enable-libfribidi --enable-
libglslang --enable-libgsm --enable-libharfbuzz --enable-libiec61883
--enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame
--enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg
--enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse
--enable-librav1e --enable-librsvg --enable-librubberband --enable-
libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-
libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-
libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpl --enable-
libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb
--enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq
--enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-
shared --enable-vapoursynth --enable-version3 --enable-vulkan
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.101 / 61. 19.101
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/11574>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".