Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.01.2023, 19:59
Кандидат Javascript-наук
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 142

Как обойти ошибку при определении продолжительности файла менее 10 секунд?
Есть cmd код которым определяю с помощью ffmpeg продолжительность 5-ти штук видео фалов формата mp4.
Код:
@echo OFF
SETLOCAL ENABLEDELAYEDEXPANSION
for /L %%i in (1,1,5) do (
    for /F "tokens=2" %%a in ('ffmpeg -i vidov_ska4ali_%%i.mp4 2^>^&1 ^| find "Duration"') do SET z=%%a
    set Z1=!Z:~0,2!
    set Z2=!Z:~3,2!
    set Z3=!Z:~6,2!

    if !Z1! LSS 10 (set Z1=0!Z1!)
    if !Z2! LSS 10 (set Z2=0!Z2!)
    if !Z3! LSS 10 (set Z3=0!Z3!)

    set /A vidov_ska4ali_%%i=!Z1! * 3600 + !Z2! * 60 + !Z3!
)
echo file "vidov_ska4ali_1.mp4" have 12 sec but displays !vidov_ska4ali_1! seconds
echo file "vidov_ska4ali_2.mp4" have 21 sec but displays !vidov_ska4ali_2! seconds
echo file "vidov_ska4ali_3.mp4" have 9 sec but displays !vidov_ska4ali_3! seconds
echo file "vidov_ska4ali_4.mp4" have 13 sec but displays !vidov_ska4ali_4! seconds
echo file "vidov_ska4ali_5.mp4" have 14 sec but displays !vidov_ska4ali_5! seconds




Но тут есть ошибка в определении продолжительности файла vidov_ska4ali_3.mp4. Она возникает т.к. файл имеет длину 9 сек, то есть число состоящее из одной цифры. И соответственно в логе вот такое:
Неправильное число. Числовые константы должны быть десятичными (17)
шестнадцатеричными (0x11),или восьмеричными (021).
file "vidov_ska4ali_1.mp4" have 12 sec but displays 12 seconds
file "vidov_ska4ali_2.mp4" have 21 sec but displays 21 seconds
file "vidov_ska4ali_3.mp4" have 9 sec but displays  seconds
file "vidov_ska4ali_4.mp4" have 13 sec but displays 13 seconds
file "vidov_ska4ali_5.mp4" have 14 sec but displays 14 seconds
Ответить с цитированием
  #2 (permalink)  
Старый 27.01.2023, 21:25
Кандидат Javascript-наук
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 142

Так заработало:
@echo OFF
SETLOCAL ENABLEDELAYEDEXPANSION

for /L %%i in (1,1,5) do (
    for /F "tokens=2" %%a in ('ffmpeg -i vidov_ska4ali_%%i.mp4 2^>^&1 ^| find "Duration"') do SET z=%%a
	
    set /A Z1=1!Z:~0,2!-100
    set /A Z2=1!Z:~3,2!-100
    set /A Z3=1!Z:~6,2!-100
 
    set /A vidov_ska4ali_%%i=!Z1! * 3600 + !Z2! * 60 + !Z3!
)
echo file "vidov_ska4ali_1.mp4" have 12 sec but displays !vidov_ska4ali_1! seconds
echo file "vidov_ska4ali_2.mp4" have 21 sec but displays !vidov_ska4ali_2! seconds
echo file "vidov_ska4ali_3.mp4" have 9 sec but displays !vidov_ska4ali_3! seconds
echo file "vidov_ska4ali_4.mp4" have 13 sec but displays !vidov_ska4ali_4! seconds
echo file "vidov_ska4ali_5.mp4" have 14 sec but displays !vidov_ska4ali_5! seconds
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обойти обнуление прокрутки при добавлении нового DOM-узла? webantip Общие вопросы Javascript 3 07.04.2014 16:59
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
script.onload Как отследить ошибку загрузки файла? khusamov Events/DOM/Window 5 28.01.2012 00:01
Как выдавать ошибку при сбросе загрузки страницы? AvaGet Общие вопросы Javascript 2 11.12.2008 19:04
Как узнать какие ошибки произошли при парсинге xml файла faunder Events/DOM/Window 0 12.09.2008 14:17