I think that command line video editing software + bacth to generate a loop in order to edit all the videos at once is the way to go. My problem is that i have not found free software with command line to insert watermarks so far. Any ideas?
问问题
606 次
1 回答
0
编写AviSynth脚本添加水印,然后使用 FFmpeg 重新转换文件。Win32 的 FFmpeg 能够从 AviSynth 帧服务器读取。
一个有用的链接:如何使用 AviSynth 添加水印。
我编写了一个/bin/sh
脚本来帮助我进行家庭视频批量转换。.bat
它会在您的当前目录中生成 windows文件。您可以轻松地对其进行修改以生成 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 *.avi
. conv.bat
文件将使用适当的命令生成。正如我所说:echo ffmpeg ...
根据您的需要更改部分,但是您已经有了“框架”来为您希望的尽可能多的输入文件生成.bat
或.avs
或什么文件。:-)
于 2013-04-21T22:31:10.267 回答