if (KdenliveSettings::video4capture().isEmpty()) {
QString captureCommand;
- if (!KdenliveSettings::video4adevice().isEmpty()) captureCommand = "-f " + KdenliveSettings::video4aformat() + " -i " + KdenliveSettings::video4adevice();
+ if (!KdenliveSettings::video4adevice().isEmpty()) captureCommand = "-f " + KdenliveSettings::video4aformat() + " -i " + KdenliveSettings::video4adevice() + " -acodec " + KdenliveSettings::video4acodec();
- captureCommand += " -f " + KdenliveSettings::video4vformat() + " -s " + KdenliveSettings::video4size() + " -r " + QString::number(KdenliveSettings::video4rate()) + " -i " + KdenliveSettings::video4vdevice();
+ captureCommand += " -f " + KdenliveSettings::video4vformat() + " -s " + KdenliveSettings::video4size() + " -r " + QString::number(KdenliveSettings::video4rate()) + " -i " + KdenliveSettings::video4vdevice() + " -vcodec " + KdenliveSettings::video4vcodec();;
KdenliveSettings::setVideo4capture(captureCommand);
}
m_didCapture = false;
slotStartCapture(false);
m_discAction->setIcon(KIcon("network-disconnect"));
- m_discAction->setText(i18n("Disonnect"));
+ m_discAction->setText(i18n("Disconnect"));
m_recAction->setEnabled(true);
m_stopAction->setEnabled(true);
m_playAction->setEnabled(true);
m_isPlaying = false;
break;
case VIDEO4LINUX:
- m_captureProcess->write("q\n", 3);
- QTimer::singleShot(1000, m_captureProcess, SLOT(kill()));
-
- break;
case SCREENGRAB:
m_captureProcess->write("q\n", 3);
QTimer::singleShot(1000, m_captureProcess, SLOT(kill()));
case 3:
// HDV CAPTURE
m_captureArgs << "--format" << "hdv";
- m_displayArgs << "-f" << "mpegts";
+ m_displayArgs << "-f" << KdenliveSettings::video4container();
break;
}
if (KdenliveSettings::firewireautosplit()) m_captureArgs << "--autosplit";
m_discAction->setEnabled(true);
break;
case VIDEO4LINUX:
- m_captureArgs << KdenliveSettings::video4capture().simplified().split(' ') << KdenliveSettings::video4encoding().simplified().split(' ') << "-f" << "mpegts" << "-vcodec" << "mpeg4" << "-acodec" << "mp2" << "-";
- m_displayArgs << "-f" << "mpegts" << "-x" << QString::number(video_frame->width()) << "-y" << QString::number(video_frame->height()) << "-";
+ m_captureArgs << KdenliveSettings::video4capture().simplified().split(' ') << KdenliveSettings::video4encoding().simplified().split(' ') << "-f" << KdenliveSettings::video4container() << "-";
+ m_displayArgs << "-f" << KdenliveSettings::video4container() << "-x" << QString::number(video_frame->width()) << "-y" << QString::number(video_frame->height()) << "-";
m_captureProcess->setStandardOutputProcess(m_displayProcess);
kDebug() << "Capture: Running ffmpeg " << m_captureArgs.join(" ");
m_captureProcess->start("ffmpeg", m_captureArgs);
m_recAction->setChecked(true);
QString extension = "mp4";
if (device_selector->currentIndex() == SCREENGRAB) extension = "ogv"; //KdenliveSettings::screengrabextension();
+ else if (device_selector->currentIndex() == VIDEO4LINUX) extension = KdenliveSettings::video4extension();
QString path = KdenliveSettings::capturefolder() + "/capture0000." + extension;
int i = 1;
while (QFile::exists(path)) {
switch (device_selector->currentIndex()) {
case VIDEO4LINUX:
- m_captureArgs << KdenliveSettings::video4capture().simplified().split(' ') << KdenliveSettings::video4encoding().simplified().split(' ') << "-vcodec" << "mpeg4" << "-acodec" << "mp2" << "-y" << m_captureFile.path() << "-f" << "mpegts" << "-vcodec" << "mpeg4" << "-acodec" << "mp2" << "-";
- m_displayArgs << "-f" << "mpegts" << "-x" << QString::number(video_frame->width()) << "-y" << QString::number(video_frame->height()) << "-";
+ m_captureArgs << KdenliveSettings::video4capture().simplified().split(' ') << KdenliveSettings::video4encoding().simplified().split(' ') << "-y" << m_captureFile.path() << "-f" << KdenliveSettings::video4container() << "-acodec" << KdenliveSettings::video4acodec() << "-vcodec" << KdenliveSettings::video4vcodec() << "-";
+ m_displayArgs << "-f" << KdenliveSettings::video4container() << "-x" << QString::number(video_frame->width()) << "-y" << QString::number(video_frame->height()) << "-";
m_captureProcess->setStandardOutputProcess(m_displayProcess);
kDebug() << "Capture: Running ffmpeg " << m_captureArgs.join(" ");
m_captureProcess->start("ffmpeg", m_captureArgs);
break;
default:
// Region capture
- m_captureArgs << "-width" << QString::number(KdenliveSettings::rmd_width()) << "-height" << QString::number(KdenliveSettings::rmd_height());
+ m_captureArgs << "--width" << QString::number(KdenliveSettings::rmd_width()) << "--height" << QString::number(KdenliveSettings::rmd_height());
if (!KdenliveSettings::rmd_follow_mouse()) {
m_captureArgs << "-x" << QString::number(KdenliveSettings::rmd_offsetx()) << "-y" << QString::number(KdenliveSettings::rmd_offsety());
} else {
}
break;
}
+ if (KdenliveSettings::rmd_hide_mouse()) m_captureArgs << "--no-cursor";
m_isCapturing = true;
if (KdenliveSettings::rmd_capture_audio()) {
- m_captureArgs << "-freq" << KdenliveSettings::rmd_freq();
- m_captureArgs << "-channels" << QString::number(KdenliveSettings::rmd_audio_channels());
+ m_captureArgs << "--freq" << KdenliveSettings::rmd_freq();
+ m_captureArgs << "--channels" << QString::number(KdenliveSettings::rmd_audio_channels());
if (KdenliveSettings::rmd_use_jack()) {
- m_captureArgs << "-use-jack" << KdenliveSettings::rmd_jackports();
+ m_captureArgs << "--use-jack";
+ QStringList ports = KdenliveSettings::rmd_jackports().split(" ", QString::SkipEmptyParts);
+ for (int i = 0; i < ports.count(); ++i) {
+ m_captureArgs << ports.at(i);
+ }
if (KdenliveSettings::rmd_jack_buffer() > 0.0)
- m_captureArgs << "-ring-buffer-size" << QString::number(KdenliveSettings::rmd_jack_buffer());
+ m_captureArgs << "--ring-buffer-size" << QString::number(KdenliveSettings::rmd_jack_buffer());
} else {
if (!KdenliveSettings::rmd_alsadevicename().isEmpty())
- m_captureArgs << "-device" << KdenliveSettings::rmd_alsadevicename();
+ m_captureArgs << "--device" << KdenliveSettings::rmd_alsadevicename();
if (KdenliveSettings::rmd_alsa_buffer() > 0)
- m_captureArgs << "-buffer-size" << QString::number(KdenliveSettings::rmd_alsa_buffer());
+ m_captureArgs << "--buffer-size" << QString::number(KdenliveSettings::rmd_alsa_buffer());
}
} else m_captureArgs << "--no-sound";
if (KdenliveSettings::rmd_fullshots()) m_captureArgs << "--full-shots";
- m_captureArgs << "-workdir" << KdenliveSettings::currenttmpfolder();
- m_captureArgs << "-fps" << QString::number(KdenliveSettings::rmd_fps()) << "-o" << m_captureFile.path();
+ m_captureArgs << "--v_bitrate" << QString::number(KdenliveSettings::rmd_bitrate());
+ m_captureArgs << "--v_quality" << QString::number(KdenliveSettings::rmd_quality());
+ m_captureArgs << "--workdir" << KdenliveSettings::currenttmpfolder();
+ m_captureArgs << "--fps" << QString::number(KdenliveSettings::rmd_fps()) << "-o" << m_captureFile.path();
m_captureProcess->start(KdenliveSettings::rmd_path(), m_captureArgs);
kDebug() << "// RecordMyDesktop params: " << m_captureArgs;
break;
if (m_captureProcess && m_captureProcess->exitStatus() == QProcess::CrashExit) {
video_frame->setText(i18n("Capture crashed, please check your parameters"));
} else {
- if (device_selector->currentIndex() != SCREENGRAB) video_frame->setText(i18n("Not connected"));
- else video_frame->setPixmap(mergeSideBySide(KIcon("video-display").pixmap(QSize(50, 50)), i18n("Press record button\nto start screen capture\nFiles will be saved in:\n%1", KdenliveSettings::capturefolder())));
+ if (device_selector->currentIndex() != SCREENGRAB) {
+ video_frame->setText(i18n("Not connected"));
+ } else {
+ if (m_captureProcess->exitCode() != 0) {
+ video_frame->setText(i18n("Capture crashed, please check your parameters\nRecordMyDesktop exit code: %1", QString::number(m_captureProcess->exitCode())));
+ } else {
+ video_frame->setPixmap(mergeSideBySide(KIcon("video-display").pixmap(QSize(50, 50)), i18n("Press record button\nto start screen capture\nFiles will be saved in:\n%1", KdenliveSettings::capturefolder())));
+ }
+ }
}
m_isCapturing = false;