3 место Король Социалок 15: Методы генерации вирального контента

apalon

Активный пользователь
Регистрация
01.06.2015
Сообщения
158
Благодарностей
33
Баллы
28
19000$ pravilno?
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 991
Благодарностей
4 457
Баллы
113
Блин. Начал читать, потом скроллить- кругом одни жоппы, проскролил дальше- упс, котики ))
Две главные темы интернета)
Что-то про текстовку не слова...:(
Там ничего интересного: поиск источников непроиндексированного контента, мешап, синонимизация.
Ну наконец-то первый ответ и сразу верный!
 
  • Спасибо
Реакции: Andrew Shell

Home_KreKer

Client
Регистрация
05.12.2016
Сообщения
160
Благодарностей
37
Баллы
28
Вопрос по поводу добавления контраста, может быть в место контраста добавлять насыщенность цветов? Если такое возможно, то это было бы эффективнее, чем добавление контраста - мое субъективное.
 
  • Спасибо
Реакции: Astraport и Andrew Shell

Andrew Shell

Client
Регистрация
24.11.2016
Сообщения
39
Благодарностей
16
Баллы
8
Отстаёшь от тренда @Astraport.
Какие то старинные "Сториз сейчас есть у страниц в ФБ, в профилях ФБ, в ВК, и, конечно, в Инсте"
А где сегодняшний день? Где упоминание o Tik Tok?
Или ты, хитрый, на #16 оставил?
 
  • Спасибо
Реакции: faros73 и Astraport

Ikigai

Client
Регистрация
13.12.2016
Сообщения
276
Благодарностей
27
Баллы
28
Годная тема , буду изучать .
Жаль 11 сниппет не для 4х картинок =) ( что бы все в квадрат одного размера ). Сложновато для меня самостоятельно переписать код , что бы получить такое решение. ..
PS: нашел решение, склеиваю вначале фотки по вертикали , а потом по горизонтали.. Но объем из начальных исходных по 190 кб , превращается в 16 мб... =)


C#:
//три любых картинки склеиваем в коллаж в зависимости от их размеров без нарушения пропорций
//сначала определяем самую широкую картинку - она будет нижней, третьей
//потом скейлим вторую картинку под высоту первой
//затем скейлим третью картинку под ширину первой+второй
List <string> images = Directory.GetFiles(project.Directory + "/example1").ToList();
int max = 0;
int index = -1;
for (int i = 0; i < images.Count; i++) {
    Image img = Image.FromFile(images[i]);
    if (img.Width > max) {
        max= img.Width;
        index = i;
    }
}

Image img3 = Image.FromFile(images[index]);
images.RemoveAt(index);

Random rnd = new Random();
index = rnd.Next(0, images.Count);
Image img1 = Image.FromFile(images[index]);
images.RemoveAt(index);
Image img2 = Image.FromFile(images[0]);

//вычисляем все размеры
float scale2 = (float)img2.Height / img2.Width; //пропорции второй картинки
int newheight2 = img1.Height; //новая высота второй картинки
int newidth2 = (int)(newheight2 / scale2); //новая ширина второй картинки
int newidth3 = (int)(newidth2 + img1.Width); //новая ширина третьей картинки
float scale3 = (float) img3.Height / img3.Width; //пропорции третьей картинки
int newheight3 = (int)(newidth3 * scale3); //новая высота третьей картинки
int newheight = (int)(img1.Height + newheight3); //высота всего коллажа

//создаём битмапу найденных размеров
Bitmap bmp = new Bitmap(newidth3, newheight);
Graphics g = Graphics.FromImage(bmp);
//вклеиваем картинки по одной
g.DrawImage(img1, 0, 0, img1.Width, img1.Height);
g.DrawImage(img2, img1.Width, 0, newidth2, newheight2);
g.DrawImage(img3, 0, img1.Height, newidth3, newheight3);

bmp.Save(project.Directory + "/image_result.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
g.Dispose();
bmp.Dispose();
img1.Dispose();
img2.Dispose();
img3.Dispose();
 

Вложения

Последнее редактирование:
  • Спасибо
Реакции: Shakeway и Astraport

limarkximus

Client
Регистрация
01.08.2019
Сообщения
115
Благодарностей
73
Баллы
28
Отстаёшь от тренда @Astraport.
Какие то старинные "Сториз сейчас есть у страниц в ФБ, в профилях ФБ, в ВК, и, конечно, в Инсте"
А где сегодняшний день? Где упоминание o Tik Tok?
Или ты, хитрый, на #16 оставил?
индусы не плохо так рейтинг тик току понизили)))
а вообще такими трансляциями уже года два назад был тот же вк забит со сливом на ешлюхинг и подобное
 
  • Спасибо
Реакции: Astraport

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
ffmpeg -re -y -i output.mp4 -c:a copy -ac 1 -ar 44100 -b:a 96k -vcodec libx264 -pix_fmt yuv420p -vf scale=1080:-1 -r 30 -g 60 -tune zerolatency -f flv -maxrate 2000k -preset veryfast "rtmps://live-api-s.facebook.com:443/rtmp/your_key_here"
Спасибо, постримил, работает, но залупить не получилось видео.
Не скажу что у меня сильно эффект был, но в целом видос конечно виральный надо какой нить и на аудиторию которая не стесняется лайки ставить ...
 
  • Спасибо
Реакции: Astraport

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 991
Благодарностей
4 457
Баллы
113
Вопрос по поводу добавления контраста, может быть в место контраста добавлять насыщенность цветов? Если такое возможно, то это было бы эффективнее, чем добавление контраста - мое субъективное.
Они сильно похожи по эффекту, но сатурация придаёт часто неестественные цвета. А так методы есть для битмапы https://stackoverflow.com/questions/14364716/faster-algorithm-to-change-hue-saturation-lightness-in-a-bitmap
Где упоминание o Tik Tok?
В нём пока не разобрался. Наверняка придется ковырять их приложение.
PS: нашел решение, склеиваю вначале фотки по вертикали , а потом по горизонтали.. Но объем из начальных исходных по 190 кб , превращается в 16 мб... =)
Если картинки одинаковые по размеру, то это просто. А вот склеить 4 разных, то придется повозиться с вычислениями.
Насчет веса итоговой картинки, то попробуйте менять степень сжатия примерно так.
C#:
ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg); 
System.Drawing.Imaging.Encoder myEncoder =  System.Drawing.Imaging.Encoder.Quality; 

EncoderParameters myEncoderParameters = new EncoderParameters(1); 
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 50L); 
myEncoderParameters.Param[0] = myEncoderParameter; 
bmp.Save(project.Directory + "/image_result.jpg", jpgEncoder, myEncoderParameters);
но залупить не получилось видео.
Останавливалась трансляция после первого цикла?
 
  • Спасибо
Реакции: Nike59 и Ikigai

limarkximus

Client
Регистрация
01.08.2019
Сообщения
115
Благодарностей
73
Баллы
28
C#:
ffmpeg -threads 2 -re -fflags +genpts -stream_loop -1 -i output.mp4 -c:a copy -ac 1 -ar 44100 -b:a 96k -vcodec libx264 -pix_fmt yuv420p -vf scale=1280:-1 -r 30 -g 60 -tune zerolatency -f flv -maxrate 2000k -preset veryfast "rtmps://live-api-s.facebook.com:443/rtmp/API_KEY"
вот так вот получилось зациклить чтоб не останавливалось.. хз правильно или нет))) но работает)
 

masterklas-s

Client
Регистрация
10.02.2020
Сообщения
2
Благодарностей
2
Баллы
3
Две главные темы интернета)

Там ничего интересного: поиск источников непроиндексированного контента, мешап, синонимизация.

Ну наконец-то первый ответ и сразу верный!
поиск источников непроиндексированного контента - это интересно. Расскажи
 
  • Спасибо
Реакции: Astraport

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 991
Благодарностей
4 457
Баллы
113
вот так вот получилось зациклить чтоб не останавливалось.. хз правильно или нет))) но работает)
Только хотел похожее решение запостить.
поиск источников непроиндексированного контента - это интересно. Расскажи
Например - Телеграм.
 

Ikigai

Client
Регистрация
13.12.2016
Сообщения
276
Благодарностей
27
Баллы
28
Насчет веса итоговой картинки, то попробуйте менять степень сжатия примерно так.
Ругается ошибку выдает
Компиляция кода Ошибка в действии "CS0246" "Не удалось найти имя типа или пространства имен "EncoderParameter" (пропущена директива using или ссылка на сборку?)". [Строка: 53; Cтолбец: 43]

Это я так понимаю надо библиотеку прописать какую-то?)
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 991
Благодарностей
4 457
Баллы
113
Ругается ошибку выдает
Компиляция кода Ошибка в действии "CS0246" "Не удалось найти имя типа или пространства имен "EncoderParameter" (пропущена директива using или ссылка на сборку?)". [Строка: 53; Cтолбец: 43]

Это я так понимаю надо библиотеку прописать какую-то?)
Нет, System.Drawing.Imaging
 

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113

Ikigai

Client
Регистрация
13.12.2016
Сообщения
276
Благодарностей
27
Баллы
28

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 099
Благодарностей
648
Баллы
113

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 991
Благодарностей
4 457
Баллы
113
Общий код, добавить using, пробовал?
Да там ещё метод GetEncoder нужно выносить в общий код.
Вот проще:
C#:
var encoder = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders().First(c => c.FormatID == System.Drawing.Imaging.ImageFormat.Jpeg.Guid);
var encParams = new System.Drawing.Imaging.EncoderParameters() { Param = new[] { new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 80L) } };

bmp.Save(project.Directory + "/image_result.jpg", encoder, encParams);
 

Lite

Client
Регистрация
17.10.2013
Сообщения
288
Благодарностей
100
Баллы
43
Хм, надо думать, гуглить. На разных виртуалках 100% можно.
Сейчас проверил - можно запустить несколько копий OBS, и для каждой выставить нужное окно браузера, как источник трансляции. Ютуб даже разрешает на одном канале делать несколько трансляций.
Только у меня при двух трансляциях ноут уже начал напрягаться)
 
  • Спасибо
Реакции: Astraport

Spikers07

Client
Регистрация
25.05.2016
Сообщения
123
Благодарностей
54
Баллы
28
Не знаю, данный момент (через ffmpeg) работает и в вк, ютубе, фб и тп.
 
  • Спасибо
Реакции: Astraport

gashasty

Client
Регистрация
28.02.2019
Сообщения
22
Благодарностей
3
Баллы
3
подскажите как решить. в кубике с поворотом картинки строка
int angle = 5;//угол поворота
поворачивает на 5 градусов, а как сделать чтоб поворот был на 0,5 ? пробовал прописать через запятую или точку, выдает ошибку
 
  • Спасибо
Реакции: Astraport

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 991
Благодарностей
4 457
Баллы
113
подскажите как решить. в кубике с поворотом картинки строка
int angle = 5;//угол поворота
поворачивает на 5 градусов, а как сделать чтоб поворот был на 0,5 ? пробовал прописать через запятую или точку, выдает ошибку
float angle = .5f;//угол поворота
 
  • Спасибо
Реакции: VladV777 и gashasty

Ikigai

Client
Регистрация
13.12.2016
Сообщения
276
Благодарностей
27
Баллы
28
Сториз! Это просто клад для нас. Сториз сейчас есть у страниц в ФБ, в профилях ФБ, в ВК, и, конечно, в Инсте. Такие ролики Зенка будет клепать без устали и постить в сторизы ваших ботов. Осталось только продумать правильный слив.
Прошу прощения, но как в сторис инсты можно заливать что-то, постоянно выводит ошибку "Rotate your davice"
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 991
Благодарностей
4 457
Баллы
113
Прошу прощения, но как в сторис инсты можно заливать что-то, постоянно выводит ошибку "Rotate your davice"
Был топик соответствующий на форуме год назад, там всё это обсуждалось.

В дополнение к сниппетам по работе с картинками. Есть ещё такой код, который накладывает маски на изображения различных цветов.
Результат примерно такой:
image_result.jpg
Код:
C#:
Bitmap original = (Bitmap)Image.FromFile(project.Directory + "/image.jpg");

int w = original.Width;
int h = original.Height;
Color clr = Color.Salmon;//Здесь меняем цвет маски

System.Drawing.Imaging.ImageAttributes ia = new System.Drawing.Imaging.ImageAttributes();

System.Drawing.Imaging.ColorMatrix cm = new System.Drawing.Imaging.ColorMatrix();
cm.Matrix00 = (float)clr.R/ 255;
cm.Matrix11 = (float)clr.G/ 255;
cm.Matrix22 = (float)clr.B/ 255;
cm.Matrix33 = (float)clr.A/ 255;
cm.Matrix44 = 1f;

ia.SetColorMatrix(cm, System.Drawing.Imaging.ColorMatrixFlag.Default);
Bitmap bm = new Bitmap(w, h);
Graphics g = Graphics.FromImage(bm);

Rectangle bounds = new Rectangle(0, 0, bm.Width, bm.Height);
g.DrawImage(original, bounds, 0, 0, bm.Width, bm.Height, GraphicsUnit.Pixel, ia);

bm.Save(project.Directory + "/image_result.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
original.Dispose();
bm.Dispose();
g.Dispose();
 
  • Спасибо
Реакции: faros73

Ikigai

Client
Регистрация
13.12.2016
Сообщения
276
Благодарностей
27
Баллы
28
7. Накладываем видео на скриншот не забыв добавить адрес своего канала, сайта, группы в виде водяного знака.
ffmpeg.exe -loop 1 -i {-Variable.img_path-} -vf "movie={-Variable.video_file-}[inner];[in][inner]overlay=0:217:shortest=1[out]" -y {-Variable.output_file-}.mp4
если не трудно можно ли шаблон приложить? Не очень понятно что и как делать.
Если правлиьно понял то:
1) В директорию проекта закидываем ffmpeg.exe( или же в windows/system32 )?
2) Дальше создаем батник
3) Запускаем батник

 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 991
Благодарностей
4 457
Баллы
113
Избавьтесь от путей с кириллицей и с пробелами.
 

theinova

Client
Регистрация
07.09.2016
Сообщения
121
Благодарностей
82
Баллы
28
если не трудно можно ли шаблон приложить? Не очень понятно что и как делать.
Если правлиьно понял то:
1) В директорию проекта закидываем ffmpeg.exe( или же в windows/system32 )?
2) Дальше создаем батник
3) Запускаем батник

Лучше всего проверить сам батник, надо запустить его в командой строке чтобы отследить возможные ошибки - ffmpeg обычно пишет что ему не нравится
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 101
Благодарностей
132
Баллы
63
А есть вариант скролинга скрина?
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 991
Благодарностей
4 457
Баллы
113

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 101
Благодарностей
132
Баллы
63
Последнее редактирование:

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 991
Благодарностей
4 457
Баллы
113
  • Спасибо
Реакции: Andrew Shell

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)