Skip to content

Commit eca3ec9

Browse files
committed
Addvideo bitrate command option
For some reason it is not exacuting properly Try to fix it in the next commit
1 parent 3026238 commit eca3ec9

File tree

1 file changed

+98
-3
lines changed

1 file changed

+98
-3
lines changed

ffmpeg-coder.cpp

Lines changed: 98 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class ffmpeg
2222
std::vector<std::string> encodes;
2323
std::vector<int> crf;
2424
std::vector<int> audiobitrate;
25+
std::vector<int> videobitrate;
2526

2627
public:
2728
//Vars
@@ -30,6 +31,9 @@ class ffmpeg
3031
int selected_crf;
3132
int selected_audioBitrate;
3233
bool is_ab_selected = false;
34+
int selected_videoBitrate;
35+
bool is_vb_selected = false;
36+
3337
//Methods
3438
ffmpeg();
3539
~ffmpeg();
@@ -185,6 +189,91 @@ class ffmpeg
185189
std::cout << std::endl;
186190
}
187191
}
192+
void select_videoBitrate()
193+
{
194+
/* Type Video Bitrate, Standard Frame Rate
195+
(24, 25, 30)
196+
Video Bitrate, High Frame Rate
197+
(48, 50, 60)
198+
2160p (4K) 35–45 Mbps 53–68 Mbps
199+
1440p (2K) 16 Mbps 24 Mbps
200+
1080p 8 Mbps 12 Mbps
201+
720p 5 Mbps 7.5 Mbps
202+
480p 2.5 Mbps 4 Mbps
203+
360p 1 Mbps 1.5 Mbps
204+
*/
205+
206+
using namespace std;
207+
208+
int choice;
209+
int vb1, vb2, vb3, vb4, vb5, vb6;
210+
vb1 = 35; //4k
211+
vb2 = 18;
212+
vb3 = 8;
213+
vb4 = 5;
214+
vb5 = 3; //480p
215+
vb6 = 1; //360p
216+
217+
//loading the video bitrates to the vector
218+
videobitrate.push_back(vb1);
219+
videobitrate.push_back(vb2);
220+
videobitrate.push_back(vb3);
221+
videobitrate.push_back(vb4);
222+
videobitrate.push_back(vb5);
223+
videobitrate.push_back(vb6);
224+
//Asking the user
225+
cout << "Do you want to specify video bitrates?" << endl;
226+
cout << "1. Yes" << endl
227+
<< "2. No" << endl;
228+
cout << "Your choice: ";
229+
cin >> choice;
230+
231+
if (choice == 1)
232+
{
233+
is_vb_selected = true;
234+
for (int i = 0; i < videobitrate.size(); i++)
235+
{
236+
cout << (i + 1) << ". " << videobitrate[i] << endl;
237+
}
238+
cout << "Your choice:";
239+
cin >> choice;
240+
241+
switch (choice)
242+
{
243+
case 1:
244+
selected_videoBitrate = vb1;
245+
break;
246+
case2:
247+
selected_videoBitrate = vb2;
248+
break;
249+
case 3:
250+
selected_videoBitrate = vb3;
251+
break;
252+
case 4:
253+
selected_videoBitrate = vb4;
254+
break;
255+
case 5:
256+
selected_videoBitrate = vb5;
257+
break;
258+
case 6:
259+
selected_videoBitrate = vb6;
260+
break;
261+
262+
default:
263+
cout << "No video bitrate selected. Going with the default 8 MBPS";
264+
std::cout << std::endl;
265+
selected_videoBitrate = vb3;
266+
break;
267+
}
268+
}
269+
else
270+
{
271+
is_vb_selected = false;
272+
std::cout << "Going without -vb option";
273+
std::cout << std::endl;
274+
}
275+
276+
}
188277

189278
void h264()
190279
{
@@ -204,12 +293,17 @@ class ffmpeg
204293
std::cout << std::endl;
205294
if (is_ab_selected = true)
206295
{
207-
std::cout << "ffmpeg -i " << video_name << ".mp4 -vcodec h264 -acodec aac -ab "<<selected_audioBitrate<<"k "<< "-crf " << selected_crf << " " << video_name << ".encoded.mp4";
208-
296+
std::cout << "ffmpeg -i " << video_name << ".mp4 -vcodec h264 -acodec aac -ab " << selected_audioBitrate << "k "
297+
<< "-crf " << selected_crf << " " << video_name << ".encoded.mp4";
298+
}
299+
else if (is_vb_selected = true)
300+
{
301+
std::cout << "ffmpeg -i " << video_name << ".mp4 -vcodec h264 -acodec aac -vb " << selected_videoBitrate << "k "
302+
<< "-crf " << selected_crf << " " << video_name << ".encoded.mp4";
209303
}
210304
else
211305
{
212-
std::cout << "ffmpeg -i " << video_name << ".mp4 -vcodec h264 -acodec aac -crf " << selected_crf << " " << video_name << ".encoded.mp4";
306+
std::cout << "ffmpeg -i " << video_name << ".mp4 -vcodec h264 -acodec aac -crf " << selected_crf << " " << video_name << ".encoded.mp4";
213307
}
214308
std::cout << std::endl;
215309
std::cout << std::endl;
@@ -224,6 +318,7 @@ class ffmpeg
224318
{
225319
select_crf();
226320
select_audioBitrate();
321+
select_videoBitrate();
227322
do
228323
{
229324
h264();

0 commit comments

Comments
 (0)