Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: C - ffmpeg  (Прочитано 1242 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн victor00000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
C - ffmpeg
« : 14 Октября 2018, 01:24:08 »
видео https://youtu.be/SMMHff5D1Gs
// test_ffmpg.c
// victor00000 (c) 2018
#define          _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

// ~$ gcc test_ffmpg.c -o test_ffmpg
// ~$ ./test_ffmpg
// ~$ totem /tmp/f.mp4

//========================
void putpix32(uint8_t * a, int x, int y, uint32_t pixel, int w)
{

uint8_t *p = (uint8_t *)
    a + y * (w * 4) + x * 4;

*(uint32_t *) p = pixel;
}

//=========================
void clear32(int w, int h, uint8_t * a)
{
int i;

for (i = 0; i < w * h * 4; i++)
a[i] = 255;
}

//========================
void swapint(int *a, int *b)
{
int c = *a;

*a = *b;
*b = c;
}

//====================
void line32(int w, int h,
    int x1, int y1, int x2, int y2, uint8_t * a, uint32_t col)
{
int xa1 = x1, ya1 = y1, xa2 = x2, ya2 = y2;

if (xa1 > xa2)
swapint(&xa1, &xa2);
if (ya1 > ya2)
swapint(&ya1, &ya2);

xa2 -= xa1;
ya2 -= ya1;

if (xa2 < 0)
xa2 = 0;
if (ya2 < 0)
ya2 = 0;

int i, x, y;

for (i = 0; i < 100; i++) {

x = i * xa2 / 100;
y = i * ya2 / 100;

x += xa1;
y += ya1;

putpix32(a, x, y, col, w);
}
}

//=================m0
int main()
{
int w = 800 / 10, h = 600 / 10;
uint8_t a[w * h * 4];

FILE *fp;
char *cmd;

asprintf(&cmd,
//====================dd1
 "echo RECORD OPEN;" "ffmpeg -v error -y -f rawvideo " "-s %dx%d -pix_fmt rgba "// bgr24
 "-r 15 -i - "
// "-i %s "
// "-vf vflip "
 "-acodec copy "
 "-shortest " "%s;echo \"RECORD CLOSE err:$?\"", w, h,
// cmc[0],
 "/tmp/f.mp4");
fp = popen(cmd, "w");
int i, x, y;

clear32(w, h, a);
for (i = 0; i < 100; i++)
fwrite(a, w * h * 4, 1, fp);

for (i = 0; i < 1000; i++) {
// y = 0;
for (x = 0; x < w; x++) {
clear32(w, h, a);
line32(w, h, x, 0, x, h, a, 0);
if (y >= i) {
y = 0;
fwrite(a, w * h * 4, 1, fp);
} else
y++;
}
}
pclose(fp);
free(cmd);
return 0;
}
http://paste.ubuntu.com/p/YmgpjnNGfD/
Wars ~.o

Оффлайн бамбук

  • Активист
  • *
  • Сообщений: 541
  • Kubuntu 20.04 LTS x86_64
    • Просмотр профиля
Re: C - ffmpeg
« Ответ #1 : 14 Октября 2018, 09:15:33 »
Chuwi LapBook 14.1   ревизия ноутбука-3.0

Оффлайн victor00000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Wars ~.o

Оффлайн бамбук

  • Активист
  • *
  • Сообщений: 541
  • Kubuntu 20.04 LTS x86_64
    • Просмотр профиля
Re: C - ffmpeg
« Ответ #3 : 14 Октября 2018, 11:20:32 »
это - это 
Цитировать
видео https://youtu.be/SMMHff5D1Gs
Chuwi LapBook 14.1   ревизия ноутбука-3.0

Оффлайн victor00000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: C - ffmpeg
« Ответ #4 : 14 Октября 2018, 11:52:11 »
что получилось?)
Wars ~.o

 

Страница сгенерирована за 0.073 секунд. Запросов: 25.