-3

すべての動画を一度に編集するには、コマンドラインの動画編集ソフト + ループを生成する bacth が最適な方法だと思います。私の問題は、透かしを挿入するためのコマンドラインを備えたフリーソフトウェアを今のところ見つけていないことです. 何か案は?

4

1 に答える 1

0

AviSynthスクリプトを作成して透かしを追加し、FFmpeg を使用してファイルを再変換します。Win32 用の FFmpeg は、AviSynth フレームサーバーから読み取ることができます。

役立つリンク: How to add a watermark with AviSynth .

/bin/sh家族のビデオのバッチ変換に役立つスクリプトを作成しました。現在のディレクトリにwindows.batファイルを生成します。これを簡単に変更して 200 個.avsのスクリプトを生成し、FFmpeg を呼び出してそれらを変換することができます。

#!/bin/sh

OUTBAT="$(pwd)/conv.bat"
OUTSH="$(pwd)/conv.sh"

if [ -e "${OUTBAT}" ] ; then
    echo "${OUTBAT}: file exists, exiting"
    exit 4
fi

if [ -e "${OUTSH}" ] ; then
    echo "${OUTSH}: file exists, exiting"
    exit 4
fi

usage() {
    echo "${0}: ${1}"
    echo
    echo "usage: ${0} <mode> <file1>[ <file2> [...]]"
    echo
    echo "available <mode>'s:"
    echo "    -x : generates windows .BAT file (conv. to x264+AAC@mp4)"
}

if [ $# -eq 0 ] ; then
    usage "no mode specified"
    exit 1
fi

MODE=${1}
shift

if [ $# -eq 0 ] ; then
    usage "no input files"
    exit 2
fi

while [ $# -gt 0 ] ; do
    FILE=$(echo "${1}" | sed -re 's/\//\\\\/g')
    if [ -n "$(echo "${FILE}" | grep -P '\.mp4$')" ] ; then
        ORIG=$(echo "${FILE}" | sed -re 's/(\.[^\.]*)$/-original\1/')
        echo ren \""${FILE}"\" \""${ORIG}"\" >>"${OUTBAT}"
    else
        ORIG="${FILE}"
    fi
    BASE=$(echo "${FILE}" | sed -re 's/\.[^\.]*$//')
    shift

    case "${MODE}" in
        "-x")
            echo ffmpeg -threads 4 -i \""${ORIG}"\" -vn -af \"aresample=48000:resampler=soxr\" -acodec pcm_s16le \""${BASE}"-audio.wav\" >>"${OUTBAT}"
            echo normalize \""${BASE}"-audio.wav\" >>"${OUTBAT}"
            echo neroAacEnc -if \""${BASE}"-audio.wav\" -of \""${BASE}"-audio.mp4\" >>"${OUTBAT}"
            echo del \""${BASE}"-audio.wav\" >>"${OUTBAT}"
            echo x264 --preset veryslow --tune film --crf 25 --vbv-maxrate 17500 --vbv-bufsize 17500 --level 3.1 -o \""${BASE}"-video.mp4\" \""${ORIG}"\" >>"${OUTBAT}"
            echo mp4box -add \""${BASE}"-video.mp4\" \""${BASE}".mp4\" >>"${OUTBAT}"
            echo mp4box -add \""${BASE}"-audio.mp4\" \""${BASE}".mp4\" >>"${OUTBAT}"
            echo del \""${BASE}"-audio.mp4\" >>"${OUTBAT}"
            echo del \""${BASE}"-video.mp4\" >>"${OUTBAT}"
            echo >>"${OUTBAT}"

            echo cptime \""${ORIG}"\" \""${BASE}".mp4\" >>"${OUTSH}"

            ;;
        *)
            usage "unknown mode"
            exit 3
            ;;
    esac

done

ディレクトリをビデオファイルのある場所に変更し、 と入力して使用する必要があります$ script-name *.aviconv.batファイルは適切なコマンドで生成されます。私が言ったように、ニーズに合わせてパーツを変更しますが、必要な数の入力ファイルに対してファイルまたはその他のファイルecho ffmpeg ...を生成する「フレームワーク」があります。:-).bat.avs

于 2013-04-21T22:31:10.267 に答える