mirror of
https://github.com/xlmnxp/blue-recorder.git
synced 2025-04-02 07:44:54 +03:00
add audio record as only option for wayland
This commit is contained in:
parent
d7eb797422
commit
b5f262d95b
@ -189,11 +189,15 @@ impl Ffmpeg {
|
|||||||
// bind the connection to gnome screencast proxy
|
// bind the connection to gnome screencast proxy
|
||||||
let gnome_screencast_proxy = GnomeScreencastProxy::new(&connection).unwrap();
|
let gnome_screencast_proxy = GnomeScreencastProxy::new(&connection).unwrap();
|
||||||
gnome_screencast_proxy.stop_screencast().unwrap();
|
gnome_screencast_proxy.stop_screencast().unwrap();
|
||||||
|
let is_audio_record = std::path::Path::new(
|
||||||
|
format!("{}.temp.audio", self.saved_filename.as_ref().unwrap()).as_str(),
|
||||||
|
)
|
||||||
|
.exists();
|
||||||
|
let is_video_record = std::path::Path::new(
|
||||||
|
format!("{}.temp", self.saved_filename.as_ref().unwrap()).as_str(),
|
||||||
|
)
|
||||||
|
.exists();
|
||||||
if self.unbound.is_some() {
|
if self.unbound.is_some() {
|
||||||
let is_audio_record = std::path::Path::new(
|
|
||||||
format!("{}.temp.audio", self.saved_filename.as_ref().unwrap()).as_str(),
|
|
||||||
)
|
|
||||||
.exists();
|
|
||||||
self.unbound
|
self.unbound
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
@ -201,59 +205,82 @@ impl Ffmpeg {
|
|||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
|
|
||||||
// convert webm to the format user choose using ffmpeg
|
// convert webm to the format user choose using ffmpeg
|
||||||
let mut ffmpeg_convert_command = Command::new("ffmpeg");
|
if is_video_record {
|
||||||
ffmpeg_convert_command.arg("-f");
|
let mut ffmpeg_convert_command = Command::new("ffmpeg");
|
||||||
ffmpeg_convert_command.arg("webm");
|
ffmpeg_convert_command.arg("-f");
|
||||||
ffmpeg_convert_command.arg("-i");
|
ffmpeg_convert_command.arg("webm");
|
||||||
ffmpeg_convert_command
|
ffmpeg_convert_command.arg("-i");
|
||||||
.arg(format!("{}.temp", self.saved_filename.as_ref().unwrap()));
|
ffmpeg_convert_command
|
||||||
ffmpeg_convert_command.arg(format!(
|
.arg(format!("{}.temp", self.saved_filename.as_ref().unwrap()));
|
||||||
"{}{}",
|
ffmpeg_convert_command.arg(format!(
|
||||||
self.saved_filename.as_ref().unwrap(),
|
"{}{}",
|
||||||
if is_audio_record {
|
self.saved_filename.as_ref().unwrap(),
|
||||||
format!(".temp.without.audio.{}", self.filename.2.get_active_id().unwrap().to_string())
|
if is_audio_record {
|
||||||
} else {
|
format!(
|
||||||
"".to_string()
|
".temp.without.audio.{}",
|
||||||
}
|
self.filename.2.get_active_id().unwrap().to_string()
|
||||||
));
|
)
|
||||||
ffmpeg_convert_command.arg("-y");
|
} else {
|
||||||
ffmpeg_convert_command.spawn().unwrap().wait().unwrap();
|
"".to_string()
|
||||||
std::fs::remove_file(format!("{}.temp", self.saved_filename.as_ref().unwrap()))
|
}
|
||||||
.unwrap();
|
));
|
||||||
|
ffmpeg_convert_command.arg("-y");
|
||||||
|
ffmpeg_convert_command.output().unwrap();
|
||||||
|
std::fs::remove_file(format!("{}.temp", self.saved_filename.as_ref().unwrap()))
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
if is_audio_record {
|
if is_audio_record {
|
||||||
// merge audio with video
|
// merge audio with video
|
||||||
let mut ffmpeg_audio_merge_command = Command::new("ffmpeg");
|
let mut ffmpeg_audio_merge_command = Command::new("ffmpeg");
|
||||||
ffmpeg_audio_merge_command.arg("-i");
|
ffmpeg_audio_merge_command.arg("-i");
|
||||||
ffmpeg_audio_merge_command.arg(format!(
|
ffmpeg_audio_merge_command.arg(format!(
|
||||||
"{}.temp.without.audio.{}",
|
"{}.temp.without.audio.{}",
|
||||||
self.saved_filename.as_ref().unwrap(),
|
self.saved_filename.as_ref().unwrap(),
|
||||||
self.filename.2.get_active_id().unwrap().to_string()
|
self.filename.2.get_active_id().unwrap().to_string()
|
||||||
));
|
));
|
||||||
ffmpeg_audio_merge_command.arg("-i");
|
ffmpeg_audio_merge_command.arg("-i");
|
||||||
ffmpeg_audio_merge_command.arg(format!(
|
ffmpeg_audio_merge_command.arg(format!(
|
||||||
"{}.temp.audio",
|
"{}.temp.audio",
|
||||||
self.saved_filename.as_ref().unwrap()
|
self.saved_filename.as_ref().unwrap()
|
||||||
));
|
));
|
||||||
ffmpeg_audio_merge_command.arg("-c:v");
|
ffmpeg_audio_merge_command.arg("-c:v");
|
||||||
ffmpeg_audio_merge_command.arg("copy");
|
ffmpeg_audio_merge_command.arg("copy");
|
||||||
ffmpeg_audio_merge_command.arg("-c:a");
|
ffmpeg_audio_merge_command.arg("-c:a");
|
||||||
ffmpeg_audio_merge_command.arg("aac");
|
ffmpeg_audio_merge_command.arg("aac");
|
||||||
ffmpeg_audio_merge_command.arg(self.saved_filename.as_ref().unwrap());
|
ffmpeg_audio_merge_command.arg(self.saved_filename.as_ref().unwrap());
|
||||||
ffmpeg_audio_merge_command.arg("-y");
|
ffmpeg_audio_merge_command.arg("-y");
|
||||||
ffmpeg_audio_merge_command.spawn().unwrap();
|
ffmpeg_audio_merge_command.output().unwrap();
|
||||||
std::fs::remove_file(format!(
|
std::fs::remove_file(format!(
|
||||||
"{}.temp.audio",
|
"{}.temp.audio",
|
||||||
self.saved_filename.as_ref().unwrap()
|
self.saved_filename.as_ref().unwrap()
|
||||||
))
|
))
|
||||||
.unwrap();
|
.unwrap();
|
||||||
std::fs::remove_file(format!(
|
std::fs::remove_file(format!(
|
||||||
"{}.temp.without.audio.{}",
|
"{}.temp.without.audio.{}",
|
||||||
self.saved_filename.as_ref().unwrap(),
|
self.saved_filename.as_ref().unwrap(),
|
||||||
self.filename.2.get_active_id().unwrap().to_string()
|
self.filename.2.get_active_id().unwrap().to_string()
|
||||||
))
|
))
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else if is_audio_record {
|
||||||
|
println!("convert audio");
|
||||||
|
Command::new("ffmpeg")
|
||||||
|
.arg("-f")
|
||||||
|
.arg("ogg")
|
||||||
|
.arg("-i")
|
||||||
|
.arg(format!(
|
||||||
|
"{}.temp.audio",
|
||||||
|
self.saved_filename.as_ref().unwrap()
|
||||||
|
))
|
||||||
|
.arg(format!("{}", self.saved_filename.as_ref().unwrap()))
|
||||||
|
.output()
|
||||||
|
.unwrap();
|
||||||
|
std::fs::remove_file(format!(
|
||||||
|
"{}.temp.audio",
|
||||||
|
self.saved_filename.as_ref().unwrap()
|
||||||
|
))
|
||||||
|
.unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user