Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] автоответ bat-нику во время его работы с последующим продолжением

Ответить
Настройки темы
CMD/BAT - [решено] автоответ bat-нику во время его работы с последующим продолжением

Новый участник


Сообщения: 45
Благодарности: 1

Профиль | Отправить PM | Цитировать


Заранее извиняюсь за туманное название темы, сейчас объясню возникшую передо мной задачу.

Для упрощения своего работы сделал следующий командный файл. Его назначение: фиксация какой-либо информации в виде аудио-видео-заметок.

Тело bat-ника

Код: Выделить весь код
chcp 866>nul
setlocal enableextensions enabledelayedexpansion
set pt=%USERPROFILE%\desktop\zayavki
echo %time:~0,8% | sed s/:/./g>%TEMP%\zayavka.tmp
set /p clocks=<%TEMP%\zayavka.tmp
set "name=%pt%\%1-%date%-%clocks%.wmv"
@ffmpeg -f gdigrab -framerate 15 -i desktop -f dshow -i audio="Microphone (2- High Definition Audio Device)" "%name%"
for /f %%a in ('echo %name%') do ffmpeg -i "%name%" -c:v libx264 -crf 28 "%pt%\%%~na.mp4
del /f /q /s "%name%"


Прошу не показывать пальцем и не смеяться - сделал как умею. Конструктивную критику же, наоборот, приветствую
Он находится у меня в папке Windows чтобы я мог вызывать его из любого места просто запустив командную строку. Принимает 1 аргумент который будет частью имени созданного файла.
https://youtu.be/oAi1lSjgSBY - демонстрация работы файла.

И наконец мой вопрос - на 0:27 в видео я нажимаю CTRL+C чтобы остановить запись, и командный файл спрашивает, продолжить ли ему исполнение или вовсе завершиться?
Как мне избежать этого вопроса и автоматически разрешить ему дальнейшее исполнение?
Если что ffmpeg - консольная утилита для работы с видео-аудио файлами, их конвертации, записи, вещания и т.п. ссылка на оф сайт - https://ffmpeg.org/

Заранее благодарю всех за помощь.

Отправлено: 14:07, 14-12-2021

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6493
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Надо нажимать не "Ctrl+C", а "q".

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 14:20, 14-12-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 45
Благодарности: 1

Профиль | Отправить PM | Цитировать


Не реагирует на q.

Отправлено: 14:27, 14-12-2021 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6493
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Непонятно почему, в Powershell реагирует нормально.
Просто после Ctrl+C с большой вероятностью получится битый файл.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 14:44, 14-12-2021 | #4


Новый участник


Сообщения: 45
Благодарности: 1

Профиль | Отправить PM | Цитировать


Ни единого битого файла. Пользуюсь много лет уже.
Попробую вызвать ffmpeg через ps.

upd. так не выходит. не дружу с powershell. подскажите как правильно вызвать?
Код: Выделить весь код
powershell -ExecutionPolicy Bypass -Command 'ffmpeg -f gdigrab -framerate 15 -i desktop -f dshow -i audio="Microphone (2- High Definition Audio Device)" "%name%"'

Последний раз редактировалось nwss, 14-12-2021 в 15:16.


Отправлено: 15:08, 14-12-2021 | #5


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6493
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Так не выйдет, это надо весь батник переписывать под PS. Попробуйте просто запустить строку записи прямо в PS и остановить её с помощью q.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 15:32, 14-12-2021 | #6


Новый участник


Сообщения: 45
Благодарности: 1

Профиль | Отправить PM | Цитировать


Да, через ps корректно завершается запись по q.
Переписать его под powershell я не осилю
Может кто предложит еще какие-то варианты. Я немного знаком с ahk.

Отправлено: 15:36, 14-12-2021 | #7


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6493
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Опишите, что он делает, код cmd я не очень понимаю.
Он пишет в wmv, а потом конвертирует в mp4? Почему сразу в mp4 не писать?

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 16:39, 14-12-2021 | #8


Новый участник


Сообщения: 45
Благодарности: 1

Профиль | Отправить PM | Цитировать


Потому что в mp4 почему-то не схватывает вывод с моего микрофона.
Точнее как только я начинаю говорить что-то - звук на видео просто пропадает.
Не знаю в чем дело, но вышел из ситуации вот так.
Добавил комментарии к bat-нику.

Код: Выделить весь код
rem Рудимент, с кодировкой вроде и так впорядке все
chcp 866>nul

rem Тоже осталось от предыдущих экспериментов, не нужно
setlocal enableextensions enabledelayedexpansion

rem Следующие строчки формируют имя файла на выходе. 
rem Костыль с выводом в файл в темп сделал потому, что были какие-то проблемы
rem именно с именем файла на выходе
rem сейчас получается файл в формате %1-принимает первый аргумент при запуске
rem %date% - текущая дата, %clocks% - время до секунды (заменяя : на . с помощью sed)
set pt=%USERPROFILE%\desktop\zayavki
echo %time:~0,8% | sed s/:/./g>%TEMP%\zayavka.tmp
set /p clocks=<%TEMP%\zayavka.tmp
set "name=%pt%\%1-%date%-%clocks%.wmv"

rem запуск записи с экрана + микрофона
@ffmpeg -f gdigrab -framerate 15 -i desktop -f dshow -i audio="Microphone (2- High Definition Audio Device)" "%name%"

rem конвертируем wmv в mp4. %~na - только имя файла 
for /f %%a in ('echo %name%') do ffmpeg -i "%name%" -c:v libx264 -crf 28 "%pt%\%%~na.mp4

rem удаляем wmv оригинал
del /f /q /s "%name%"

Отправлено: 17:23, 14-12-2021 | #9


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6493
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Что-то вроде того:
Код: Выделить весь код
$path = "$env:USERPROFILE\desktop\zayavki\$args-$(get-date -f "yyyy.MM.dd-HH.mm.ss")"
& ffmpeg -f gdigrab -framerate 15 -i desktop -f dshow -i audio="Microphone (2- High Definition Audio Device)" "$path.wmv"
& ffmpeg -i "$path.wmv" -c:v libx264 -crf 28 "$path.mp4"
del "$path.wmv" -force -confirm:$false
Вызвать скрипт ("Запись" - аргумент):
Код: Выделить весь код
C:\temp\recording.ps1 Запись

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 14-12-2021 в 17:58.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:51, 14-12-2021 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] автоответ bat-нику во время его работы с последующим продолжением

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - Во время игры в любую игру или во время работы с программами все подвисает ! Vlads986 Microsoft Windows 7 1 22-10-2013 08:56
Router - умер во время работы forgtik Сетевое оборудование 24 21-12-2010 19:21
HDD - Удары во время работы Static Накопители (SSD, HDD, USB Flash) 2 25-03-2010 02:02
Разное - Виснет во время работы PLATON Microsoft Windows 7 28 18-12-2009 11:44
[решено] Проблема с закрытием GUI и продолжением работы программы sashadeg AutoIt 3 14-06-2009 23:54




 
Переход