LINUX.ORG.RU

ffmpeg - Unrecognized option

 , ,


0

1

Баш скрипт:

date=$(date '+%Y-%m-%d_%H:%M:%S.mp4')

ffmpeg -video_size 1130x800 -framerate 25 -f x11grab -i :0.0+570,180 -f alsa -ac 2 -i hw:0 -g 100 /mnt/storage/$date
Работает замечательно.

Пытаюсь сделать то же самое из qt:

	QString strSize = lblWidth->text() + "x" + lblHeight->text();
    QString strPos = "-i :0.0+" + lblLeft->text() + "," + lblTop->text();

	QDateTime t = QDateTime::currentDateTime();
	QString s = t.toString("yyyy.MM.dd-HH.mm.ss")+".mp4";
	
	QStringList arguments;
	arguments << "-video_size" << strSize << "-framerate" << "25" << "-f" << "x11grab" ;
    arguments << strPos << "-f" << "alsa" << "-ac" << "2" << "-i" << "hw:0" << "-g" << "100" << "/mnt/storage/rec_" + s;


    recProcess = new QProcess(this);
    recProcess->setProcessChannelMode(QProcess::MergedChannels);
	connect(recProcess, SIGNAL(started()), this, SLOT(processStarted()));
	
    connect(recProcess, SIGNAL (readyReadStandardOutput()), this, SLOT(readProcessOutput()));
    recProcess->start( "ffmpeg", arguments );

При попытке начать запись в выхлопе ffmpeg получаю ошибку:

Unrecognized option 'i :0.0+225,145'.
Error splitting the argument list: Option not found

Почему из баша опция определяется нормально, из qt выдает ошибку?

★★★★

Последнее исправление: Chord (всего исправлений: 1)

Наверное, потому что -i должен быть представлен как одно значение, а его аргумент — как отдельное значение (а не всё вместе в одной строке).

kaldeon
()
Ответ на: комментарий от kaldeon

-i должен быть представлен как одно значение, а его аргумент — как отдельное значение

изначально именно так и было.

QString strPos = " :0.0+" + lblLeft->text() + "," + lblTop->text();
...
...
arguments << "-i" << strPos;

Точно так же не распознавал "-i" - писал «Invalid option -i»

Chord ★★★★
() автор топика
Ответ на: комментарий от Aceler

Аргументы представлены в виде списка. В списке не нужно добавлять пробелы между аргументами. Если бы аргументы были как строка, то да, нужны пробелы. А в случае использования QStringList не нужны

Chord ★★★★
() автор топика
Ответ на: комментарий от Aceler

Вот сейчас попробовал с пробелом перед -i

[AVFormatContext @ 0x55d47510bd40] Requested output format 'x11grab' is not known.
[out#0 @ 0x55d475107300] Error initializing the muxer for  -i :0.0+225,145: Invalid argument
Error opening output file  -i :0.0+225,145.
Error opening output files: Invalid argument
Вообще дичь какая-то

Chord ★★★★
() автор топика
Последнее исправление: Chord (всего исправлений: 1)

Оказалось, что пробел перед двоеточием не нужен вообще

Без пробела всё работает.

Chord ★★★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.