проблемы с кодировкой при передачи переменной в программу ffmpeg

nvrskozzy

Пользователь
Регистрация
11.07.2025
Сообщения
35
Благодарностей
2
Баллы
8
обращаюсь к ffmpeg через кубик запуск программы и получаю такую ошибку -
Выполнение программы E:\ffmpeg-2025-08-04-git-9a32b86307-essentials_build\bin\ffmpeg.exe Результат: -22
в возвращенной ошибке кракозябры вместо путей к файлам

судя по всему проблема в кодировке, как ее исправить подскажите, в самом зенно всё нормально отображается и при записи в файл тоже

PS добавил кубик с#
C#:
string text = project.Variables["ffmpeg1"].Value;
byte[] utf8Bytes = Encoding.UTF8.GetBytes(text);
return text;
кракозябры кириллицы остались
 
Последнее редактирование:

nvrskozzy

Пользователь
Регистрация
11.07.2025
Сообщения
35
Благодарностей
2
Баллы
8
Если вставить команду в командную строку, то все ок, но через зеннопостер он не может найти файл потому что с кодировкой беда в пути
 

code

Administrator
Регистрация
04.06.2025
Сообщения
106
Благодарностей
40
Баллы
28
обращаюсь к ffmpeg через кубик запуск программы и получаю такую ошибку -
Выполнение программы E:\ffmpeg-2025-08-04-git-9a32b86307-essentials_build\bin\ffmpeg.exe Результат: -22
в возвращенной ошибке кракозябры вместо путей к файлам

судя по всему проблема в кодировке, как ее исправить подскажите, в самом зенно всё нормально отображается и при записи в файл тоже

PS добавил кубик с#
C#:
string text = project.Variables["ffmpeg1"].Value;
byte[] utf8Bytes = Encoding.UTF8.GetBytes(text);
return text;
кракозябры кириллицы остались
Здравствуйте.

Что хранится в переменной?
Попробуйте сократить имя файла до минимума и не использовать кириллицу.
Плюс все длинные пути с пробелами обязательно заключайте в кавычки.
 

nvrskozzy

Пользователь
Регистрация
11.07.2025
Сообщения
35
Благодарностей
2
Баллы
8
Здравствуйте.

Что хранится в переменной?
Попробуйте сократить имя файла до минимума и не использовать кириллицу.
Плюс все длинные пути с пробелами обязательно заключайте в кавычки.
Здравствуйте, в какой?
ffmpeg1? команда с путями к файлам, присутствует кириллица и в названии и в папках. если эту команду вставить в командную строку всё работает, но если зенно обращается к программе возврат ошибки - файл не найден и кракозябры.
мне не вариант менять названия файлов, они должны быть именно на русском. при обращении зенно к командной строке случается косяк с кодировкой, видимо нужно обработать как-то эту переменную,задав нужную кодировку, но я не знаю как, код выше не помог
 

code

Administrator
Регистрация
04.06.2025
Сообщения
106
Благодарностей
40
Баллы
28
Здравствуйте, в какой?
ffmpeg1? команда с путями к файлам, присутствует кириллица и в названии и в папках. если эту команду вставить в командную строку всё работает, но если зенно обращается к программе возврат ошибки - файл не найден и кракозябры.
мне не вариант менять названия файлов, они должны быть именно на русском. при обращении зенно к командной строке случается косяк с кодировкой, видимо нужно обработать как-то эту переменную,задав нужную кодировку, но я не знаю как, код выше не помог
Важна любая информация, чтобы понять больше контекст.

Покажите, пожалуйста, текстом то, что вы передаёте в кубик.
Вы обрамляете кавычками при передаче в кубик вокруг переменных с путями?
"{-Variable.path-}"
 

nvrskozzy

Пользователь
Регистрация
11.07.2025
Сообщения
35
Благодарностей
2
Баллы
8
Важна любая информация, чтобы понять больше контекст.

Покажите, пожалуйста, текстом то, что вы передаёте в кубик.
Вы обрамляете кавычками при передаче в кубик вокруг переменных с путями?
"{-Variable.path-}"
да обрамляю,
C#:
ffmpeg -i "{-Variable.urlrek-}" -acodec copy -vcodec copy -bsf:v h264_mp4toannexb -f mpegts "{-Variable.urlts-}"
если вставить содержание кубика в командную строку всё работает
 

code

Administrator
Регистрация
04.06.2025
Сообщения
106
Благодарностей
40
Баллы
28
да обрамляю,
C#:
ffmpeg -i "{-Variable.urlrek-}" -acodec copy -vcodec copy -bsf:v h264_mp4toannexb -f mpegts "{-Variable.urlts-}"
если вставить содержание кубика в командную строку всё работает
Учитывая, что данные из переменных я не вижу, могу предположить.

Попробуйте создать BAT-файл и запускать его из шаблона.
Вы также можете редактировать его из шаблона как текстовый документ, чтобы подставлять туда нужные вам данные.
 
  • Спасибо
Реакции: nvrskozzy

nvrskozzy

Пользователь
Регистрация
11.07.2025
Сообщения
35
Благодарностей
2
Баллы
8
Учитывая, что данные из переменных я не вижу, могу предположить.

Попробуйте создать BAT-файл и запускать его из шаблона.
Вы также можете редактировать его из шаблона как текстовый документ, чтобы подставлять туда нужные вам данные.
странно что не сработало, запускал вручную, бесконечная попытка идёт команды нон стоп. когда вручную вставляю всё работает
C#:
ffmpeg -i "concat:E:\ffmpeg-2025-08-04-git-9a32b86307-essentials_build\labubu1.ts|H:\ютуб\TS\Шуточное Ограбление Банка ! Детские ролевые игры.ts|E:\ffmpeg-2025-08-04-git-9a32b86307-essentials_build\labubu1.ts" -vcodec copy -acodec copy "H:\ютуб\1.mp4"
 

code

Administrator
Регистрация
04.06.2025
Сообщения
106
Благодарностей
40
Баллы
28
странно что не сработало, запускал вручную, бесконечная попытка идёт команды нон стоп. когда вручную вставляю всё работает
C#:
ffmpeg -i "concat:E:\ffmpeg-2025-08-04-git-9a32b86307-essentials_build\labubu1.ts|H:\ютуб\TS\Шуточное Ограбление Банка ! Детские ролевые игры.ts|E:\ffmpeg-2025-08-04-git-9a32b86307-essentials_build\labubu1.ts" -vcodec copy -acodec copy "H:\ютуб\1.mp4"
Все дело судя по всему в восклицательном знаке.
Пожалуйста, сокращайте имена как я вам рекомендовал ранее.
После легко можно поменять название.

Bash:
@echo off
setlocal EnableDelayedExpansion   rem или уже была включена раньше

rem --- код, где нужны !переменные! ---
echo Пример: переменная !DATE!

rem --- сам вызов FFmpeg без Delayed Expansion ---
setlocal DisableDelayedExpansion
ffmpeg -i "concat:E:\ffmpeg-2025-08-04-git-9a32b86307-essentials_build\labubu1.ts|H:\ютуб\TS\Шуточное Ограбление Банка ! Детские ролевые игры.ts|E:\ffmpeg-2025-08-04-git-9a32b86307-essentials_build\labubu1.ts" -c copy "H:\ютуб\1.mp4"
endlocal                   rem вернулись в режим EnableDelayedExpansion

rem --- возможно ещё какой-то код ---
echo Готово
pause
Дело в том, что cmd.exe с включённой Delayed Expansion считает любой текст между "!" переменной и пытается подставить её значение

Вариант короче:
Bash:
@echo off
rem Запускаем отдельную копию cmd без Delayed Expansion
cmd /v:off /c ^
ffmpeg -i "concat:E:\ffmpeg-2025-08-04-git-9a32b86307-essentials_build\labubu1.ts|H:\ютуб\TS\Шуточное Ограбление Банка ! Детские ролевые игры.ts|E:\ffmpeg-2025-08-04-git-9a32b86307-essentials_build\labubu1.ts" ^
       -c copy "H:\ютуб\1.mp4"
pause
 
Последнее редактирование:
  • Спасибо
Реакции: nvrskozzy

nvrskozzy

Пользователь
Регистрация
11.07.2025
Сообщения
35
Благодарностей
2
Баллы
8
Спасибо, однако не пойму почему вручную тот же код если вставить работает, у меня из зенно не работают и другие пути без восклицательных знаков, все же думаю дело в кодировке
 
  • Спасибо
Реакции: code

code

Administrator
Регистрация
04.06.2025
Сообщения
106
Благодарностей
40
Баллы
28
Спасибо, однако не пойму почему вручную тот же код если вставить работает, у меня из зенно не работают и другие пути без восклицательных знаков, все же думаю дело в кодировке
Все дело в том, что по умолчанию в консоли этот режим выключен.

Но не исключаю, что ещё дело в кодировке.
В BAT можно сразу задать кодировку в начале.
 
  • Спасибо
Реакции: nvrskozzy

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)