LINUX.ORG.RU

Вырезать аудио дорожку с помощью ffmpeg

 


0

1

Приветствую!

Имеем: сервер видео/аудио регистрации на Deb9, файлы пишутся как видео+аудио, так и просто видео.

Встала необходимость сохранять файлы записи без аудио. Скриптом отлавливается событие по факту сохранения файла записи. Вот секция:

on_video_saved() {
   local cam_nr evt_id last_frame_sec first_frame_sec
   local motion_session file_sizeKB frames_in_file resolution relpath
   local _storage_dir = "${STORAGE_DIR:-/var/spool/avreg}"
   local filename=

   cam_nr=$1
   evt_id=$2
   last_frame_time="$3"
   first_frame_time="$4"
   motion_session=$5
   file_sizeKB=$6
   frames_in_file=$7
   resolution="$8x$9"
   relpath="${10}"
   filename="${relpath##*/}"

   if [ "$evt_id" == '12' ]; then
      ffmpeg -loglevel error -i "${_storage_dir}/${relpath}" -vcodec copy -an "/var/tmp/${filename}"
      mv "/var/tmp/${filename}" "${_storage_dir}/${relpath}"
   fi
}

С помощью конструкции пытаюсь отловить файлы содержащие V/A, выпилить аудио дорожку и перезаписать файлик в тоже место но уже без аудио

   if [ "$evt_id" == '12' ]; then
      ffmpeg -loglevel error -i "${_storage_dir}/${relpath}" -vcodec copy -an "/var/tmp/${filename}"
      mv "/var/tmp/${filename}" "${_storage_dir}/${relpath}"
   fi
не получается...

пробовал вот такую конструкцию:

 if [ $evt_id == 12 ]; then
      ffmpeg -i ${_storage_dir}${relpath} -vcodec copy -an /var/tmp${filename}
      mv /var/tmp${filename} ${_storage_dir}${relpath}
   fi
результат тот же.

Думал, может ffmpeg не работает.. запускал команду из терминала с явным указанием путей - все работает.

Подскажите, пожалуйста, как правильно написать, что бы работало в скрипте?