среда, 16 августа 2017 г.

Запись/вещание (streaming) экрана (ffmpeg, VLC)

ffmpeg

@echo off
D:\ffmpeg\bin\ffmpeg -rtbufsize 702000k -f dshow -framerate 30 -i video="screen-capture-recorder":audio="virtual-audio-capturer" -c:v libx264 -crf 23 -r 30 -preset ultrafast -c:a libvorbis -b:a 128k "Screencast %DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%.mkv"

После запуска скрипта появится окно программы FFmpeg с процессом записи экрана. Во время записи окно можно свернуть. Чтобы завершить запись экрана, достаточно закрыть окно программы. Файл записи будет сохранен с именем «Screencast ГГГГ-ММ-ДД ЧЧ-ММ-СС.mkv» и будет расположен в том месте, где и находится скрипт.

Как посмотреть список устройств?

ffmpeg -list_devices true -f dshow -i dummy
[dshow @ 00000000010864e0] DirectShow video devices (some may be both video and audio devices)
[dshow @ 00000000010864e0]  "Integrated Camera"
[dshow @ 00000000010864e0]     Alternative name "@device_pnp_\\?\usb#vid_17ef&pid_480f&mi_00#7&31e816c9&0&0000#{65e8773d-8f56-11d0-a3b9-00a0
[dshow @ 00000000010864e0]  "screen-capture-recorder"
[dshow @ 00000000010864e0]     Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{4EA69364-2C8A-4AE6-A561-56E4B5044439}"
[dshow @ 00000000010864e0] DirectShow audio devices
[dshow @ 00000000010864e0]  "Internal Microphone (Conexant 20585 SmartAudio HD)"
[dshow @ 00000000010864e0]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{21667D19-AD01-40EC-8A99-609DE41C308
[dshow @ 00000000010864e0]  "virtual-audio-capturer"
[dshow @ 00000000010864e0]     Alternative name "@device_sw_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\{8E146464-DB61-4309-AFA1-3578E927E935}"

Запись изображение и звука с микрофона
"C:\Program Files\ffmpeg\bin\ffmpeg" -rtbufsize 702000k -f dshow -framerate 30 -i video="screen-capture-recorder":audio="Internal Microphone (Conexant 20585 SmartAudio HD)" -c:v libx264 -crf 23 -r 30 -preset ultrafast -c:a libvorbis -b:a 128k -ac 2 "Screencast %DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%.mkv"

Вещаем аудио и видео

ffmpeg -rtbufsize 702000k -f dshow -i video="screen-capture-recorder" -f dshow -i audio="External Microphone (Conexant 20585 SmartAudio HD)" -f dshow -i audio="virtual-audio-capturer" -filter_complex "[1:0][2:0]amerge=inputs=2" -r 5 -vcodec mpeg4 -q 10 -acodec libmp3lame -ar 22050 -ab 64k -f mpegts udp://10.209.113.8:1234?pkt_size=188?buffer_size=65535

где:
-ab 128k - качество звука
ar 22050 - 22050 Hz
-r 5 - fps
10.X.X.X - ПК на котором будим смотреть и слушать

Проигрываем
ffplay -i udp://10.X.X.X:1234

Запуск в скрытом режиме.
Создаем файл strem.cmd
ffmpeg -rtbufsize 702000k -f dshow -i video="screen-capture-recorder" -f dshow -i audio="External Microphone (Conexant 20585 SmartAudio HD)" -f dshow -i audio="virtual-audio-capturer" -filter_complex "[1:0][2:0]amerge=inputs=2" -r 5 -vcodec mpeg4 -q 10 -acodec libmp3lame -ar 22050 -ab 64k -f mpegts udp://10.209.113.8:1234?pkt_size=188?buffer_size=65535

start.vbs
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "cmd.exe /c strem.cmd", 0, false

Цифра "0" в скрипте - запуск в скрытом виде
Если написать 1 - обычный размер окна
2 запуск в свернутом виде с переходом фокуса
3 развернутое на весь экран
4 запуск в обычном размере, в неактивном состоянии (без фокуса)
7 запуск в свернутом виде без перехвата фокуса
8 обычный размер в неактивном состоянии, но в фокусе остается запустившее приложение

false - значит не ждать окончания работы батника(true - ждать)


VLC

@echo off
cd c:\
cd Program Files\VideoLAN\VLC\
echo %DATE%
echo %TIME%
set datetimef=%date:~-4%.%date:~3,2%.%date:~0,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%
start vlc screen:// :screen-left=0 :screen-top=0 :screen-fps=15.000000 :live-caching=600 :qt-minimal-view :sout="#transcode{vcodec=mp4v,vb=1024,fps=15,scale=0.5,acodec=vorb,ab=128,channels=2,samplerate=8000}:std{access=file,mux=avi,dst=d:\Video\%datetimef%.mpg}"
exit

Файл записи будет сохранен с именем «ГГГГ.ММ.ДД_ЧЧ-ММ-СС.mpg» и будет расположен в папке "d:\Video\".

Примечание: у меня пишет только изображение. Звук не пишет :(.

Запуск VLC с ведением лог файла
vlc --extraintf=logger --verbose=2 --logfile=d:\vlc.log --logmode=text --file-logging --save-config


Комментариев нет:

Отправить комментарий