создавать формы волны типа бара, используя ffmpeg

я пытаюсь создать волновые формы из mp3, используя ffmpeg.
я успешно создал формы волны, как показано ниже

введите описание изображения здесь

Теперь у меня проблемы с генерацией, как показано ниже пример изображения …

введите описание изображения здесь

код, который я использую для генерации вертикальной линии, представлен ниже …

while (!feof($handle) && $data_point < $data_size) {
if ($data_point++ % DETAIL == 0) {
$bytes = array();

// get number of bytes depending on bitrate
for ($i = 0; $i < $byte; $i++) {
$bytes[$i] = fgetc($handle);
}

switch ($byte) {
// get value for 8-bit wav
case 1:
$data = findValues($bytes[0], $bytes[1]);
break;
// get value for 16-bit wav
case 2:
if (ord($bytes[1]) & 128) {
$temp = 0;
} else {
$temp = 128;
}

$temp = chr((ord($bytes[1]) & 100) + $temp);
$data = floor(findValues($bytes[0], $temp) / 256);
break;
}

// skip bytes for memory optimization
fseek($handle, $ratio, SEEK_CUR);

// draw this data point
// relative value based on height of image being generated
// data values can range between 0 and 255
$v = (int) ($data / 255 * $height);

// don't print flat values on the canvas if not necessary
if (!($v / $height == 0.5 && !$draw_flat))
// draw the line on the image using the $v value and centering it vertically on the canvas
{
imageline($img,
// x1
(int) ($data_point / DETAIL),
// y1: height of the image minus $v as a percentage of the height for the wave amplitude
$height * $wav - $v,
// x2
(int) ($data_point / DETAIL),
// y2: same as y1, but from the bottom of the image
$height * $wav - ($height - $v), imagecolorallocate($img, $r, $g, $b));
}

imageline($img1,
// x1
(int) ($data_point / DETAIL),
// y1: height of the image minus $v as a percentage of the height for the wave amplitude
$height * $wav - $v,
// x2
(int) ($data_point / DETAIL),
// y2: same as y1, but from the bottom of the image
$height * $wav - ($height - $v), imagecolorallocate($img1, $r1, $g1, $b1));

}

любая помощь приветствуется …

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]