QString captureCommand;
if (!KdenliveSettings::video4adevice().isEmpty()) captureCommand = "-f " + KdenliveSettings::video4aformat() + " -i " + KdenliveSettings::video4adevice();
- captureCommand += " -f " + KdenliveSettings::video4vformat() + " -s " + KdenliveSettings::video4size() + " -r " + QString::number(KdenliveSettings::video4rate()) + " -i " + KdenliveSettings::video4vdevice() + " -f " + KdenliveSettings::video4vencoding();
+ captureCommand += " -f " + KdenliveSettings::video4vformat() + " -s " + KdenliveSettings::video4size() + " -r " + QString::number(KdenliveSettings::video4rate()) + " -i " + KdenliveSettings::video4vdevice();
KdenliveSettings::setVideo4capture(captureCommand);
}
- if (KdenliveSettings::video4playback().isEmpty()) {
- QString playbackCommand;
- playbackCommand = "-f " + KdenliveSettings::video4vencoding();
- KdenliveSettings::setVideo4playback(playbackCommand);
- }
-
kDebug() << "/////// BUILDING MONITOR, ID: " << ui.video_frame->winId();
}
m_playAction->setEnabled(false);
if (KdenliveSettings::rmd_path().isEmpty()) {
QString rmdpath = KStandardDirs::findExe("recordmydesktop");
- if (rmdpath.isEmpty()) ui.video_frame->setPixmap(mergeSideBySide(KIcon("dialog-warning").pixmap(QSize(50, 50)), i18n("Recordmydesktop utility not found, please install it for screen grabs")));
+ if (rmdpath.isEmpty()) ui.video_frame->setPixmap(mergeSideBySide(KIcon("dialog-warning").pixmap(QSize(50, 50)), i18n("Recordmydesktop utility not found,\n please install it for screen grabs")));
else KdenliveSettings::setRmd_path(rmdpath);
}
- ui.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 (!KdenliveSettings::rmd_path().isEmpty()) ui.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())));
//ui.video_frame->setText(i18n("Press record button\nto start screen capture"));
break;
case VIDEO4LINUX:
m_rewAction->setEnabled(false);
m_fwdAction->setEnabled(false);
//ui.video_frame->setText(i18n("Plug your camcorder and\npress connect button\nto initialize connection"));
- ui.video_frame->setPixmap(mergeSideBySide(KIcon("network-connect").pixmap(QSize(50, 50)), i18n("Plug your camcorder and\npress connect button\nto initialize connection\nFiles will be saved in:\n%1", KdenliveSettings::capturefolder())));
+ if (KdenliveSettings::dvgrab_path().isEmpty()) {
+ QString dvgrabpath = KStandardDirs::findExe("dvgrab");
+ if (dvgrabpath.isEmpty()) ui.video_frame->setPixmap(mergeSideBySide(KIcon("dialog-warning").pixmap(QSize(50, 50)), i18n("dvgrab utility not found,\n please install it for firewire capture")));
+ else KdenliveSettings::setDvgrab_path(dvgrabpath);
+ }
+
+ if (!KdenliveSettings::dvgrab_path().isEmpty()) ui.video_frame->setPixmap(mergeSideBySide(KIcon("network-connect").pixmap(QSize(50, 50)), i18n("Plug your camcorder and\npress connect button\nto initialize connection\nFiles will be saved in:\n%1", KdenliveSettings::capturefolder())));
break;
}
}
captureProcess->setStandardOutputProcess(displayProcess);
captureProcess->setWorkingDirectory(KdenliveSettings::capturefolder());
kDebug() << "Capture: Running dvgrab " << m_captureArgs.join(" ");
- captureProcess->start("dvgrab", m_captureArgs);
+ captureProcess->start(KdenliveSettings::dvgrab_path(), m_captureArgs);
if (play) captureProcess->write(" ", 1);
m_discAction->setEnabled(true);
break;
case VIDEO4LINUX:
- m_captureArgs << KdenliveSettings::video4capture().simplified().split(' ') << "-";
- m_displayArgs << KdenliveSettings::video4playback().simplified().split(' ') << "-x" << QString::number(ui.video_frame->width()) << "-y" << QString::number(ui.video_frame->height()) << "-";
+ m_captureArgs << KdenliveSettings::video4capture().simplified().split(' ') << KdenliveSettings::video4encoding().simplified().split(' ') << "-f" << "mpegts" << "-vcodec" << "mpeg4" << "-acodec" << "mp2" << "-";
+ m_displayArgs << "-f" << "mpegts" << "-x" << QString::number(ui.video_frame->width()) << "-y" << QString::number(ui.video_frame->height()) << "-";
captureProcess->setStandardOutputProcess(displayProcess);
kDebug() << "Capture: Running ffmpeg " << m_captureArgs.join(" ");
captureProcess->start("ffmpeg", m_captureArgs);
}
if (ui.device_selector->currentIndex() != SCREENGRAB) {
- kDebug() << "Capture: Running ffplay " << m_captureArgs.join(" ");
+ kDebug() << "Capture: Running ffplay " << m_displayArgs.join(" ");
displayProcess->start("ffplay", m_displayArgs);
ui.video_frame->setText(i18n("Initialising..."));
} else {
}
if (captureProcess->state() == QProcess::NotRunning) {
m_recAction->setChecked(true);
- QString extension = "mpg";
+ QString extension = "mp4";
if (ui.device_selector->currentIndex() == SCREENGRAB) extension = "ogv"; //KdenliveSettings::screengrabextension();
QString path = KdenliveSettings::capturefolder() + "/capture0000." + extension;
int i = 1;
m_displayArgs << "-f" << "mpegts" << "-x" << QString::number(ui.video_frame->width()) << "-y" << QString::number(ui.video_frame->height()) << "-";
captureProcess->setStandardOutputProcess(displayProcess);
kDebug() << "Capture: Running dvgrab " << m_captureArgs.join(" ");
- captureProcess->start("dvgrab", m_captureArgs);
+ captureProcess->start(KdenliveSettings::dvgrab_path(), m_captureArgs);
break;
case VIDEO4LINUX:
- m_captureArgs << KdenliveSettings::video4capture().simplified().split(' ') << "-y" << m_captureFile.path() << "-f" << KdenliveSettings::video4vencoding() << "-";
- m_displayArgs << KdenliveSettings::video4playback().simplified().split(' ') << "-x" << QString::number(ui.video_frame->width()) << "-y" << QString::number(ui.video_frame->height()) << "-";
+ 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(ui.video_frame->width()) << "-y" << QString::number(ui.video_frame->height()) << "-";
captureProcess->setStandardOutputProcess(displayProcess);
kDebug() << "Capture: Running ffmpeg " << m_captureArgs.join(" ");
captureProcess->start("ffmpeg", m_captureArgs);
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 m_captureArgs << "--follow-mouse";
+ } else {
+ m_captureArgs << "--follow-mouse";
+ if (KdenliveSettings::rmd_hide_frame()) m_captureArgs << "--no-frame";
+ }
break;
}
m_isCapturing = true;
if (KdenliveSettings::rmd_capture_audio()) {
- if (KdenliveSettings::rmd_use_jack()) m_captureArgs << "-use-jack" << KdenliveSettings::rmd_jackports();
- else if (!KdenliveSettings::rmd_alsadevicename().isEmpty())
- m_captureArgs << "-device" << KdenliveSettings::rmd_alsadevicename();
+ 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();
+ if (KdenliveSettings::rmd_jack_buffer() > 0.0)
+ m_captureArgs << "-ring-buffer-size" << QString::number(KdenliveSettings::rmd_jack_buffer());
+ } else {
+ if (!KdenliveSettings::rmd_alsadevicename().isEmpty())
+ m_captureArgs << "-device" << KdenliveSettings::rmd_alsadevicename();
+ if (KdenliveSettings::rmd_alsa_buffer() > 0)
+ 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();
captureProcess->start(KdenliveSettings::rmd_path(), m_captureArgs);
kDebug() << "// RecordMyDesktop params: " << m_captureArgs;