Opened 2 years ago

Last modified 12 months ago

#11059 new defect

FFmpeg cannot load files with non-latin characters by DirectShowSource2 of AviSynth+

Reported by: syehoonkim Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
How to reproduce:

% ffmpeg -i input.avs ... output
ffmpeg version N-115575-g4e120fbbbd-ffmpeg-windows-build-helpers Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 10.2.0 (GCC)
  configuration: --pkg-config=pkg-config --pkg-config-flags=--static --extra-version=ffmpeg-windows-build-helpers --enable-version3 --disable-debug --disable-w32threads --arch=x86_64 --target-os=mingw32 --cross-prefix=/home/syehoon/repos/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32- --enable-libcaca --enable-gray --enable-libtesseract --enable-fontconfig --enable-gmp --enable-libass --enable-libbluray --enable-libbs2b --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libvorbis --enable-libwebp --enable-libzimg --enable-libzvbi --enable-libmysofa --enable-libopenjpeg --enable-libopenh264 --enable-libvmaf --enable-libsrt --enable-libxml2 --enable-opengl --enable-libdav1d --enable-gnutls --enable-libsvtav1 --enable-libvpx --enable-libaom --enable-nvenc --enable-nvdec --extra-libs=-lz --extra-libs=-lpng --extra-libs=-lm --extra-libs=-lfreetype --extra-libs=-lshlwapi --extra-libs=-lmpg123 --extra-libs=-lpthread --extra-cflags=-DLIBTWOLAME_STATIC --extra-cflags=-DMODPLUG_STATIC --extra-cflags=-DCACA_STATIC --enable-amf --enable-libmfx --enable-libaribcaption --enable-gpl --enable-frei0r --enable-librubberband --enable-libvidstab --enable-libx264 --enable-libx265 --enable-avisynth --enable-libaribb24 --enable-libxvid --enable-libdavs2 --enable-libxavs2 --enable-libxavs --extra-cflags='-mtune=generic' --extra-cflags=-O3 --enable-static --disable-shared --prefix=/home/syehoon/repos/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32 --enable-nonfree --enable-libfdk-aac --enable-decklink
  libavutil      59. 21.100 / 59. 21.100
  libavcodec     61.  6.100 / 61.  6.100
  libavformat    61.  3.104 / 61.  3.104
  libavdevice    61.  2.100 / 61.  2.100
  libavfilter    10.  2.102 / 10.  2.102
  libswscale      8.  2.100 /  8.  2.100
  libswresample   5.  2.100 /  5.  2.100
  libpostproc    58.  2.100 / 58.  2.100
[avisynth @ 000002488fa24ac0] DSS2: Can't open "D:/sample_video/진신우부장님/DJI_0077.MOV"

Add Source: (80004005) �d������ �7�Դϴ�

(frameserver.avs, line 2)
[in#0 @ 000002488fa246c0] Error opening input: Unknown error occurred
Error opening input file frameserver.avs.
Error opening input files: Unknown error occurred

The input.avs loads the file by the command

DSS2("D:/sample_video/진신우부장님/DJI_0077.MOV")

If I move the file to the directory which doesn't include non-latin characters, FFmpeg works fine.
With DirectShowSource() function, there is no problem.
I suspect that FFmpeg has some problem on dealing with unicode in processing AviSynth+'s DSS2() function.

Change History (1)

comment:1 by vertigo, 12 months ago

Having the same problem. Trying to run the following command:

"%ffmpeg%" -v error -stats -threads 8 -i "%%f" -f null -

in a batch file, where %%f is the current file being processed, fails with the following error:

[in#0 @ random_hex_string] Error opening input: Invalid argument
Error opening input file Filename...????? ????....mp4.
Error opening input files: Invalid argument

The invalid characters are replaced by ?'s (question marks) and ffmpeg can't load the files. Renaming them makes them work, so definitely an issue with the file names. This greatly reduces the ability to use ffmpeg to process files, as the only thing I can figure is to temporarily batch rename them, process them, then batch rename them back, a process that will be a major PITA.

Note: See TracTickets for help on using tickets.