2011-12-28 3 views
0

나는 ffmpeg 및 cygwin 확장자를 사용하여 불량 프레임을 AVI 파일에서 검사하는 here에서 Bash 스크립트를 가져 왔습니다. Mingw에서 코드를 실행할 수 있습니다. 나는 ffmpeg.exe (ren ffmpeg), cygwin1.dll & cygz.dll을 Mingw의 bin 디렉토리 (/ c/mingw/bin /)에 넣었다. 자,이 bash 코드를 PowerShell로 이식하려고합니다. 누구든지이 PowerShell 표시등을 흘릴 수 있습니까?: 스크립트간단한 Bash 스크립트를 PowerShell로 변환 하시겠습니까?

(경로 :/C/mygw/빈/AviConvert)

#!/bin/bash 

FFMPEG="ffmpeg" 
LIST=`find | grep \.avi$` 

for i in $LIST; do 
    OUTP="$i.txt" 
    OUTP_OK="$i.txt.ok" 
    TMP_OUTP="$i.tmp" 
    if [ -f "$OUTP" -o -f "$OUTP_OK" ] ; then 
    echo Skipping "$i" 
    else 
    echo Checking "$i"... 
    RESULT="bad" 
    ffmpeg -v 5 -i "$i" -f null - 2> "$TMP_OUTP" && \ 
     mv "$TMP_OUTP" "$OUTP" && \ 
     RESULT=`grep -v "\(frame\)\|\(Press\)" "$OUTP" | grep "\["` 
    if [ -z "$RESULT" ] ; then 
     mv "$OUTP" "$OUTP_OK" 
    fi 
    fi 
done 
+0

을했다 얼마나 직접 해보니? 너 정확히 뭘 붙인거야? – zdan

+0

잘 작동합니다. 대상 폴더의 각 AVI 파일에 대해 * .ok (파일에 결함이없는 프레임이있는 경우), * .txt (프레임 오류가있는 경우) 또는 * .tmp (해당 프로세스가 진행되는 동안)). 그러나 처리 속도가 매우 느립니다. PowerShell에서 스크립트를 실행하면 mingw가 bash 환경을 에뮬레이트하므로 성능이 향상 될 수 있다고 생각했습니다 (많은 오버 헤드가 발생 했습니까?). CMIIW! –

+3

필자는 가장 오래 걸리는 것이'ffmpeg -v 5 -i "$ i"-f null - 2> "$ TMP_OUTP"'명령이라고 생각합니다. Windows avaialble [here] (http://ffmpeg.zeranoe.com/builds/) 빌드를 사용해 보셨습니까? Cygwin과 Powershell을 비교하려면 AVI 파일 중 하나를 처리하고 완료 시간을 비교하십시오. –

답변

관련 문제