Add --audio-bit-rate option

Add an option to configure the audio bit-rate.
This commit is contained in:
Romain Vimont
2023-02-18 18:32:43 +01:00
parent 637683ed7a
commit 4dbb7aa685
10 changed files with 46 additions and 6 deletions

View File

@@ -19,6 +19,12 @@ provides display and control of Android devices connected on USB (or over TCP/IP
.B \-\-always\-on\-top
Make scrcpy window always on top (above other windows).
.TP
.BI "\-\-audio\-bit\-rate " value
Encode the audio at the given bit\-rate, expressed in bits/s. Unit suffixes are supported: '\fBK\fR' (x1000) and '\fBM\fR' (x1000000).
Default is 196K (196000).
.TP
.BI "\-b, \-\-bit\-rate " value
Encode the video at the given bit\-rate, expressed in bits/s. Unit suffixes are supported: '\fBK\fR' (x1000) and '\fBM\fR' (x1000000).

View File

@@ -59,6 +59,7 @@
#define OPT_NO_POWER_ON 1039
#define OPT_CODEC 1040
#define OPT_NO_AUDIO 1041
#define OPT_AUDIO_BIT_RATE 1042
struct sc_option {
char shortopt;
@@ -99,6 +100,14 @@ static const struct sc_option options[] = {
.longopt = "always-on-top",
.text = "Make scrcpy window always on top (above other windows).",
},
{
.longopt_id = OPT_AUDIO_BIT_RATE,
.longopt = "audio-bit-rate",
.argdesc = "value",
.text = "Encode the audio at the given bit-rate, expressed in bits/s. "
"Unit suffixes are supported: 'K' (x1000) and 'M' (x1000000).\n"
"Default is 196K (196000).",
},
{
.shortopt = 'b',
.longopt = "bit-rate",
@@ -1424,6 +1433,11 @@ parse_args_with_getopt(struct scrcpy_cli_args *args, int argc, char *argv[],
return false;
}
break;
case OPT_AUDIO_BIT_RATE:
if (!parse_bit_rate(optarg, &opts->audio_bit_rate)) {
return false;
}
break;
case OPT_CROP:
opts->crop = optarg;
break;

View File

@@ -28,6 +28,7 @@ const struct scrcpy_options scrcpy_options_default = {
},
.max_size = 0,
.bit_rate = 0,
.audio_bit_rate = 0,
.max_fps = 0,
.lock_video_orientation = SC_LOCK_VIDEO_ORIENTATION_UNLOCKED,
.rotation = 0,

View File

@@ -109,6 +109,7 @@ struct scrcpy_options {
struct sc_shortcut_mods shortcut_mods;
uint16_t max_size;
uint32_t bit_rate;
uint32_t audio_bit_rate;
uint16_t max_fps;
enum sc_lock_video_orientation lock_video_orientation;
uint8_t rotation;

View File

@@ -357,6 +357,7 @@ scrcpy(struct scrcpy_options *options) {
.tunnel_port = options->tunnel_port,
.max_size = options->max_size,
.bit_rate = options->bit_rate,
.audio_bit_rate = options->audio_bit_rate,
.max_fps = options->max_fps,
.lock_video_orientation = options->lock_video_orientation,
.control = options->control,

View File

@@ -221,6 +221,8 @@ execute_server(struct sc_server *server,
}
if (!params->audio) {
ADD_PARAM("audio=false");
} else if (params->audio_bit_rate) {
ADD_PARAM("audio_bit_rate=%" PRIu32, params->audio_bit_rate);
}
if (params->codec != SC_CODEC_H264) {
ADD_PARAM("codec=%s", sc_server_get_codec_name(params->codec));

View File

@@ -34,6 +34,7 @@ struct sc_server_params {
uint16_t tunnel_port;
uint16_t max_size;
uint32_t bit_rate;
uint32_t audio_bit_rate;
uint16_t max_fps;
int8_t lock_video_orientation;
bool control;