Add recording to opus file
Use the FFmpeg opus muxer to record an opus file. PR #3978 <https://github.com/Genymobile/scrcpy/pull/3978>
This commit is contained in:
parent
d6bcde565f
commit
7321db6f28
3 changed files with 15 additions and 1 deletions
|
@ -1493,6 +1493,9 @@ get_record_format(const char *name) {
|
||||||
if (!strcmp(name, "mka")) {
|
if (!strcmp(name, "mka")) {
|
||||||
return SC_RECORD_FORMAT_MKA;
|
return SC_RECORD_FORMAT_MKA;
|
||||||
}
|
}
|
||||||
|
if (!strcmp(name, "opus")) {
|
||||||
|
return SC_RECORD_FORMAT_OPUS;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1986,6 +1989,13 @@ parse_args_with_getopt(struct scrcpy_cli_args *args, int argc, char *argv[],
|
||||||
LOGE("Audio container does not support video stream");
|
LOGE("Audio container does not support video stream");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (opts->record_format == SC_RECORD_FORMAT_OPUS
|
||||||
|
&& opts->audio_codec != SC_CODEC_OPUS) {
|
||||||
|
LOGE("Recording to OPUS file requires an OPUS audio stream "
|
||||||
|
"(try with --audio-codec=opus)");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opts->audio_codec == SC_CODEC_RAW) {
|
if (opts->audio_codec == SC_CODEC_RAW) {
|
||||||
|
|
|
@ -23,12 +23,14 @@ enum sc_record_format {
|
||||||
SC_RECORD_FORMAT_MKV,
|
SC_RECORD_FORMAT_MKV,
|
||||||
SC_RECORD_FORMAT_M4A,
|
SC_RECORD_FORMAT_M4A,
|
||||||
SC_RECORD_FORMAT_MKA,
|
SC_RECORD_FORMAT_MKA,
|
||||||
|
SC_RECORD_FORMAT_OPUS,
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline bool
|
static inline bool
|
||||||
sc_record_format_is_audio_only(enum sc_record_format fmt) {
|
sc_record_format_is_audio_only(enum sc_record_format fmt) {
|
||||||
return fmt == SC_RECORD_FORMAT_M4A
|
return fmt == SC_RECORD_FORMAT_M4A
|
||||||
|| fmt == SC_RECORD_FORMAT_MKA;
|
|| fmt == SC_RECORD_FORMAT_MKA
|
||||||
|
|| fmt == SC_RECORD_FORMAT_OPUS;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum sc_codec {
|
enum sc_codec {
|
||||||
|
|
|
@ -66,6 +66,8 @@ sc_recorder_get_format_name(enum sc_record_format format) {
|
||||||
case SC_RECORD_FORMAT_MKV:
|
case SC_RECORD_FORMAT_MKV:
|
||||||
case SC_RECORD_FORMAT_MKA:
|
case SC_RECORD_FORMAT_MKA:
|
||||||
return "matroska";
|
return "matroska";
|
||||||
|
case SC_RECORD_FORMAT_OPUS:
|
||||||
|
return "opus";
|
||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue