Help:Mpeg2dv.sh

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
This page is a translated version of a page Help:Mpeg2dv.sh and the translation is 100% complete. Changes to the translation template, respectively the source language can be submitted through Help:Mpeg2dv.sh and have to be approved by a translation administrator.

Если ваша программа редактирования видео не умеет напрямую импортировать MPEG-файлы с камеры, вам, возможно, потребуется преобразовать их в DV-формат для того, чтобы импортировать, например, в iMovie.

Инструкции

  1. Сохраните код на Рабочий стол. Проверьте, что его расширение .sh, а не .sh.txt.
  2. Разместите скрипт в нужном месте, например, /usr/local/bin/mpeg2dv.sh на Mac OS X или ~/bin/mpeg2dv.sh на Linux, находящемся в вашей переменной окружения $PATH, и, при необходимости, сделайте скрипт исполняемым.
  3. Откройте терминал (Terminal.app на Mac OS X, находящийся в Приложениях в папке Утилиты) и напечатайте:
mpeg2dv.sh anMpgFile.mpg anotherMpgFile.mpg

В результате будут сформированы dv-файлы.

Скрипт

#!/bin/sh

# This script converts mpeg files from a digital camera 
# into the DV format using the ffmpeg tool.
#
# Eric Kow
# Public domain - do whatever you want with this

FFMPEG_FLAGS="-ac 2 -ar 48000 -hq -s 720x480"
TYPE_1=
TYPE_2='-map 0:1 -map 0:0' 
TYPE_3='-map 0:2 -map 0:1'

try_ffmpeg() {
  IN_FILE=${1}
  OUT_FILE=${2}
  while [ "$#" -gt "2" ]
  do
    TYPE=${3}
    ffmpeg -i "${IN_FILE}" ${TYPE} ${FFMPEG_FLAGS} "${OUT_FILE}" || :
    if [ -s ${OUT_FILE} ]; then
      return 0
    else
      rm ${OUT_FILE}
    fi
    shift
  done
}

# for each file...
while [ "$#" -gt "0" ]
do
  # what file are we working on now?
  in_file=$1
  in_file_uscore=`echo ${in_file} | sed -e 's/ /_/g'`
  out_file_stem=`basename ${in_file_uscore} .mpg`
  out_file=${out_file_stem}.dv
  shift

  try_ffmpeg "${in_file}" "${out_file}"\
    "${TYPE_1}" "${TYPE_2}" "${TYPE_3}"
done