2016-07-06 15 views
1

Когда пользователь загружает видео, я делаю его 2 размера. Раньше я делал это в два этапа, как следующийизменить размер одного видео в 2 размерах в одной команде

Первый Размер:

ffmpeg -i in.mp4 -filter:v "scale=iw*min(1170/iw\,300/ih):ih*min(1170/iw\,300/ih), pad=1170:300:(1170-iw*min(1170/iw\,300/ih))/2:(300-ih*min(1170/iw\,300/ih))/2" out.mp4 

Второй Размер:

ffmpeg -i in.mp4 -filter:v "scale=iw*min(365/iw\,172/ih):ih*min(365/iw\,172/ih), pad=365:172:(365-iw*min(365/iw\,172/ih))/2:(172-ih*min(365/iw\,172/ih))/2" out1.mp4 

Но теперь, чтобы уменьшить время обработки, я хочу, чтобы объединить эти 2 шага в один. Я прочитал https://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs и сделать следующую команду

ffmpeg -i in.mp4 -filter:v "scale=iw*min(1170/iw\,300/ih):ih*min(1170/iw\,300/ih), pad=1170:300:(1170-iw*min(1170/iw\,300/ih))/2:(300-ih*min(1170/iw\,300/ih))/2" bigVideo.mp4 \ -filter:v "scale=iw*min(365/iw\,172/ih):ih*min(365/iw\,172/ih), pad=365:172:(365-iw*min(365/iw\,172/ih))/2:(172-ih*min(365/iw\,172/ih))/2" smallVideo.mp4 

Но это дает следующее сообщение об ошибке

[NULL @ 0xaee5440] Не удалось найти подходящий формат вывода '-filter: V' -filter: v: Недопустимый аргумент

так может кто-нибудь предложить мне, как я могу его решить?

+0

попытаться удалить флажок -filter: v и повторно запустить команду. – arshpreet

+0

уже пробовал, но не работал – Jass

ответ

0

Я попытался запустить обе команды с помощью следующего сценария:

#!/bin/bash 
for cmd in "[email protected]"; do { 
echo "Process \"$cmd\" started"; 
$cmd & pid=$! 
    PID_LIST+=" $pid"; 
    } done 
    trap "kill $PID_LIST" SIGINT 
    echo "Parallel processes have started"; 
    wait $PID_LIST 
    echo 
    echo "All processes have completed"; 

Вы можете сохранить его как filename.sh и сделать исполняемый файл. после того, что вам нужно передать два более команд в качестве аргументов, например, я побежал, как:

./filename.sh "ffmpeg -i input.mp4 -s 720x480 output1.mp4" "ffmpeg -i input.mp4 -s 1170x480 output2.mp4" 

Ваша команда была немного сложнее для меня, поэтому я стараюсь выполнять простые команды с помощью параллельного сценария.