@@ -81,45 +81,67 @@ impl MP4Encoder {
81
81
} ;
82
82
83
83
let audio = if let Some ( audio_config) = audio_config {
84
- let ( mut audio_enc, audio_codec, output_format) = if cfg ! ( target_os = "macos" ) {
85
- let audio_codec = encoder:: find_by_name ( "aac_at" )
86
- . ok_or ( MediaError :: TaskLaunch ( "Could not find AAC codec" . into ( ) ) ) ?;
87
- let mut audio_ctx = context:: Context :: new_with_codec ( audio_codec) ;
88
- audio_ctx. set_threading ( Config :: count ( 4 ) ) ;
89
- let mut audio_enc = audio_ctx. encoder ( ) . audio ( ) ?;
90
-
91
- let output_format = ffmpeg:: format:: Sample :: I16 ( format:: sample:: Type :: Planar ) ;
92
-
93
- audio_enc. set_flags ( ffmpeg:: codec:: Flags :: QSCALE ) ;
94
- audio_enc. set_quality ( 10 * FF_QP2LAMBDA as usize ) ;
95
-
96
- ( audio_enc, audio_codec, output_format)
97
- } else {
98
- let audio_codec = encoder:: find_by_name ( "aac" )
99
- . ok_or ( MediaError :: TaskLaunch ( "Could not find AAC codec" . into ( ) ) ) ?;
100
- let mut audio_ctx = context:: Context :: new_with_codec ( audio_codec) ;
101
- audio_ctx. set_threading ( Config :: count ( 4 ) ) ;
102
- let mut audio_enc = audio_ctx. encoder ( ) . audio ( ) ?;
103
-
104
- audio_enc. set_bit_rate ( 128 * 1000 ) ;
105
- let output_format = ffmpeg:: format:: Sample :: F32 ( format:: sample:: Type :: Planar ) ;
106
-
107
- if !audio_codec
108
- . audio ( )
109
- . unwrap ( )
110
- . rates ( )
111
- . into_iter ( )
112
- . flatten ( )
113
- . any ( |r| r == audio_config. rate ( ) )
114
- {
115
- return Err ( MediaError :: TaskLaunch ( format ! (
116
- "AAC Codec does not support sample rate {}" ,
117
- audio_config. rate( )
118
- ) ) ) ;
119
- }
84
+ let audio_codec = encoder:: find_by_name ( "libopus" )
85
+ . ok_or ( MediaError :: TaskLaunch ( "Could not find Opus codec" . into ( ) ) ) ?;
86
+ let mut audio_ctx = context:: Context :: new_with_codec ( audio_codec) ;
87
+ let mut audio_enc = audio_ctx. encoder ( ) . audio ( ) ?;
88
+
89
+ audio_enc. set_bit_rate ( 128 * 1000 ) ;
90
+ let output_format = ffmpeg:: format:: Sample :: F32 ( format:: sample:: Type :: Packed ) ;
91
+
92
+ if !audio_codec
93
+ . audio ( )
94
+ . unwrap ( )
95
+ . rates ( )
96
+ . into_iter ( )
97
+ . flatten ( )
98
+ . any ( |r| r == audio_config. rate ( ) )
99
+ {
100
+ return Err ( MediaError :: TaskLaunch ( format ! (
101
+ "AAC Codec does not support sample rate {}" ,
102
+ audio_config. rate( )
103
+ ) ) ) ;
104
+ }
120
105
121
- ( audio_enc, audio_codec, output_format)
122
- } ;
106
+ // let (mut audio_enc, audio_codec, output_format) = if cfg!(target_os = "macos") {
107
+ // let audio_codec = encoder::find_by_name("aac_at")
108
+ // .ok_or(MediaError::TaskLaunch("Could not find AAC codec".into()))?;
109
+ // let mut audio_ctx = context::Context::new_with_codec(audio_codec);
110
+ // audio_ctx.set_threading(Config::count(4));
111
+ // let mut audio_enc = audio_ctx.encoder().audio()?;
112
+
113
+ // let output_format = ffmpeg::format::Sample::I16(format::sample::Type::Planar);
114
+
115
+ // audio_enc.set_flags(ffmpeg::codec::Flags::QSCALE);
116
+ // audio_enc.set_quality(10 * FF_QP2LAMBDA as usize);
117
+
118
+ // (audio_enc, audio_codec, output_format)
119
+ // } else {
120
+ // let audio_codec = encoder::find_by_name("aac")
121
+ // .ok_or(MediaError::TaskLaunch("Could not find AAC codec".into()))?;
122
+ // let mut audio_ctx = context::Context::new_with_codec(audio_codec);
123
+ // audio_ctx.set_threading(Config::count(4));
124
+ // let mut audio_enc = audio_ctx.encoder().audio()?;
125
+
126
+ // audio_enc.set_bit_rate(128 * 1000);
127
+ // let output_format = ffmpeg::format::Sample::F32(format::sample::Type::Planar);
128
+
129
+ // if !audio_codec
130
+ // .audio()
131
+ // .unwrap()
132
+ // .rates()
133
+ // .into_iter()
134
+ // .flatten()
135
+ // .any(|r| r == audio_config.rate())
136
+ // {
137
+ // return Err(MediaError::TaskLaunch(format!(
138
+ // "AAC Codec does not support sample rate {}",
139
+ // audio_config.rate()
140
+ // )));
141
+ // }
142
+
143
+ // (audio_enc, audio_codec, output_format)
144
+ // };
123
145
124
146
audio_enc. set_rate ( audio_config. rate ( ) ) ;
125
147
audio_enc. set_format ( output_format) ;
0 commit comments