Alle Beiträge von jb_alvarado

Multiple Import

Viele Dateien gleichzeitig importieren zu müssen kann ziemlich mühsam sein. Daher bietet es sich an, das über ein Script zu machen. Da es auch sein kann, dass Objektnamen gleich sind und dadurch der Importvorgang gestoppt wird, kann man zusätzlich noch die Objekte automatisch umbenennen lassen:

1
2
3
4
5
6
7
8
files = getFiles "D:\\Pfad\\zu\\files\\*.ext"
 
for f in files do (
	importFile f #noPrompt
	actionMan.executeAction 0 "40021"  -- Selection: Select All
	for i in selection do i.name = uniquename "filename_"
	clearSelection()
	)

Mit ffmpeg Videos für Nokia 206 komprimieren

Das Script liest mit ffprobe zuerst die Auflösung aus und korrigiert gegebenenfalls die Höhe. Für Avisynth wird zusätzlich mvtools2 und ffms2 benötigt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
@echo off
Setlocal EnableDelayedExpansion 
 
for %%f in (%*) do (
 
	for /F %%g in ('ffprobe -v quiet -print_format default^=nk^=0:nw^=1 -show_streams -i %%f') do echo %%g>>"%%~nf.tmp"
	for /F "tokens=2 delims==" %%h in ('findstr width %%~nf.tmp') do set Width=%%h
	for /F "tokens=2 delims==" %%i in ('findstr height %%~nf.tmp') do set Height=%%i
 
	set /a newHeight=176*!Height!/!Width!
	set "infile=%%~sf"
 
	if !newHeight!==99 ( 
		set newHeight=100 
		) 
 
	echo.SetMTMode^(5, 4^) >> "%%~nf.avs"
	echo.LoadPlugin^("C:\Program Files (x86)\AviSynth 2.5\plugins\ffms2.dll"^) >> "%%~nf.avs"
	echo.LoadPlugin^("C:\Program Files (x86)\AviSynth 2.5\plugins\mvtools2.dll"^) >> "%%~nf.avs"
	echo.A = FFAudioSource^("!infile!"^) >> "%%~nf.avs"
	echo.V = FFVideoSource^("!infile!"^) >> "%%~nf.avs"
	echo.audiodub^(V,A^) >> "%%~nf.avs"
	echo.SetMTMode^(2^) >> "%%~nf.avs"
	echo.Lanczos4Resize^(176,!newHeight!^)>> "%%~nf.avs"
	echo.super = MSuper^(pel=2^)>> "%%~nf.avs"
	echo.backward_vec = MAnalyse^(super, isb = true^)>> "%%~nf.avs"
	echo.forward_vec = MAnalyse^(super, isb = false^)>> "%%~nf.avs"
	echo.MFlowFps^(super, backward_vec, forward_vec, num=15, den=1, ml=100^)>> "%%~nf.avs"
 
"ffmpeg.exe" -i %%~nf.avs -pix_fmt yuv420p -c:v libx264 -preset slower -crf 25 -profile:v Baseline -level 1.1 -maxrate 128K -bufsize 128K -acodec libfdk_aac -ar 22050 -ac 1 -ab 64k %%~nf_cell.mp4
 
del "%%~nf.tmp"
del "%%~nf.avs"
del "!infile!.ffindex"
)
 
echo.
echo....................................................................
echo.
echo.....................converting done................................
echo.
echo....................................................................
echo.
 
ping 127.0.0.0 -n 3 >nul
echo.
echo Window close in 15
echo.
ping 127.0.0.0 -n 5 >nul
echo.
echo Window close in 10
echo.
ping 127.0.0.0 -n 5 >nul
echo.
echo Window close in 5
echo.
ping 127.0.0.0 -n 5 >nul
echo.

Mit ImageMagick Bilder ab bestimmter Breite resizen

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
@echo off
Setlocal EnableDelayedExpansion 
 
for %%f in (%*) do (
	FOR /F %%k in ( 'identify.exe -format %%W %%f' ) do set Width=%%k
	if !Width! GTR 1024 (
	echo.
	echo.------------------------------------
	echo.Process: %%~nf
	echo.Format: %%~xf
	echo.Width: !Width!
	echo.------------------------------------
	echo.
	if %%~xf==.jpg (
	convert.exe %%f -gamma .45455 -filter Lanczos -resize 1024 -gamma 2.2 -quality 87 %%~nf%%~xf
	) else (
		convert.exe %%f -gamma .45455 -filter Lanczos -resize 1024 -gamma 2.2 %%~nf%%~xf
		)
	)	
	echo.done...
	ping 127.0.0.0 -n 2 >nul
)
echo.
echo....................................................................
echo.
echo.....................Processing finish................................
echo.
echo....................................................................
echo.
 
ping 127.0.0.0 -n 3 >nul
echo.
echo Window close in 15
echo.
ping 127.0.0.0 -n 5 >nul
echo.
echo Window close in 10
echo.
ping 127.0.0.0 -n 5 >nul
echo.
echo Window close in 5
echo.
ping 127.0.0.0 -n 5 >nul
echo.

Zwei Ordner vergleichen und Dateinamen ab bestimmter Stelle kopieren

Mit diesem Beispiel lassen sich Ordner vergleichen und die Dateinamen kopieren. Bei diesem Code werden die ersten 8 Zeichen verglichen, sind diese gleich werden die restlichen Zeichen in die Dateinamen kopiert.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
@echo off
Setlocal EnableDelayedExpansion 
 
set "source=ornder1"
set "target=ornder2"
 
 
for %%f in (%target%\*.tif) do (
	set "name1=%%~nf"
	set newname1=!name1:~,8!
 
	for %%i in (%source%\*.tif) do (
		set "name2=%%~ni"
		set newname2=!name2:~,8!
		if !newname1!==!newname2! ren !target!\!name1!.tif !name2!.tif
		)
	)
 
 
pause

FFmpeg Webstream aufzeichnen mit Timerfunktion

Zum aufzeichnen von Webstreams kann man sich auch eine Timerfunktion basteln. Es funktioniert momentan aber nur am aktuellen Tag.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
@echo off
 
set time=%time%
set correntHour=%time:~0,2%
set correntMinutes=%time:~3,2%
set correntSeconds=%time:~6,2%
 
set /a corrTotalSec=%correntHour%*60*60+%correntMinutes%*60+%correntSeconds%
 
echo.
echo Aktuelle Zeit %correntHour%:%correntMinutes%:%correntSeconds%
echo.
echo.------------------------------------------------------------------
echo.Aufnahmezeit in Stunden und Minuten angeben, z.B. 20:5
echo.------------------------------------------------------------------
echo.
 
set /p recTime="Aufnahmezeit angeben: "
set recHour=%recTime:~0,2%
set recMinutes=%recTime:~3,2%
 
set /a recTotalSec=%recHour%*60*60+%recMinutes%*60
set /a sumSec=%recTotalSec%-%corrTotalSec%
 
echo.
echo.
if %sumSec% GTR 0 (
echo.Zur Aufnahme bereit
timeout /T %sumSec% /NOBREAK
)
echo.
echo.
 
set year=%date:~-4%
set month=%date:~-7,2%
set day=%date:~-10,2%
 
C:\cmdtools\ffmpeg -i rtmp://adresse:port/folder/stream -c:v copy -c:a copy output\%year%-%month%-%day%.flv
 
 
pause

FFmpeg: Webstream aufzeichnen

Mit folgendem Script lassen sich Webstreams, welche in dem Protokoll rtmp gesendet werden aufzeichnen. Mit set year/month/day erhält die Datei als Namen das aktuelle Datum.

1
2
3
4
5
6
7
@echo off
 
set year=%date:~-4%
set month=%date:~-7,2%
set day=%date:~-10,2%
 
C:\cmdtools\ffmpeg -y -i rtmp://link_zur_webseite.de/filename.flv -c:v copy -c:a copy output\path\%year%-%month%-%day%.flv

FFmpeg Gamma-Korrektur, bzw. LUT einstellen

1
ffmpeg -loop 1 -f image2 -i Screen_%04d.png -r 25 -vf lutrgb='r=gammaval(0.4545):g=gammaval(0.4545):b=gammaval(0.4545)', crop=1024:768" -pix_fmt yuv420p -c:v libx264 -preset slow -crf 22 -t 60 -y screen.m4v