-1

I need to embed videos on youtube via the API, and to make the process a little more practical I want to merge my vignette with the videos before posting on youtube. However, the videos have different resolutions and different characteristics, so the solution I found leaves the final video with audio or streaming problems.

I ended up finding the following solution, which works well, but is extremely slow, see:

$code1 = 'ffmpeg -i vinheta.mp4 -qscale 0 vinheta.mpg';
$code2 = 'ffmpeg -i movie2.mp4 -qscale 0 movie2.mpg';
$code3 = 'cat vinheta.mpg movie2.mpg | ffmpeg -f mpeg -i - -qscale 0 -vcodec mpeg4';

system($code1);
system($code2);
system($code3);

This solution works well and without breaks, but it really takes a long time, some video takes up to 2 hours to convert, and after that the video is extremely heavy

I've researched it in several places, tested all kinds of code and this was the only one I found that works without leaving the final video with audio or video problems regardless of the resolution.

Another interesting solution is as follows:

$code1 = "ffmpeg -i vinheta.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp1.ts";
$code2 = "ffmpeg -i 4.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp2.ts";
// now join
$code3 = "ffmpeg -i \"concat:temp1.ts|temp2.ts\" -c copy -bsf:a aac_adtstoasc output.mp4";

system($code1);
system($code2);
system($code3);

The output file works perfectly fine. But only on my computer. When I send it to youtube, the audio of the second video keeps chopping

Is there any simpler and lighter way to do this without breaking my final video?

  • regarding the second code that was chopping the audio on youtube, I managed to solve it just by changing the codec. So now it's working perfectly fine as follows: $code1 = "ffmpeg -i vinheta.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp1.ts"; $code2 = "ffmpeg -i 4.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp2.ts"; // now join $code3 = "ffmpeg -i \"concat:temp1.ts|temp2.ts\" -c copy -acodec aac output.mp4"; system($code1); system($code2); system($code3); – 1001Songs Clips Jan 08 '22 at 21:13

1 Answers1

0

regarding the second code that was chopping the audio on youtube, I managed to solve it just by changing the codec. So now it's working perfectly fine as follows:

$code1 = "ffmpeg -i vinheta.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp1.ts";
$code2 = "ffmpeg -i 4.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp2.ts";
// now join
$code3 = "ffmpeg -i \"concat:temp1.ts|temp2.ts\" -c copy -acodec aac output.mp4";

system($code1);
system($code2);
system($code3);