Я делаю быстрое приложение Qt, и мне нужно сделать декларативный виджет с видео (я не хочу использовать мобильность qt). Например, это не проблема. Но я не знаю, как сделать blur libVLC. Кто-нибудь знает, как сделать размытие видео с помощью libVLC?libVLC и blur videos
1
A
ответ
0
Возможно, вы могли бы просто использовать expoblur над QImage и перекодировать размытое видео.
http://www.qtcentre.org/archive/index.php/t-26534.html
static QImage blurred(const QImage& image, const QRect& rect, int radius, bool alphaOnly = false)
{
int tab[] = { 14, 10, 8, 6, 5, 5, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2 };
int alpha = (radius < 1) ? 16 : (radius > 17) ? 1 : tab[radius-1];
QImage result = image.convertToFormat(QImage::Format_ARGB32_Premultiplied);
int r1 = rect.top();
int r2 = rect.bottom();
int c1 = rect.left();
int c2 = rect.right();
int bpl = result.bytesPerLine();
int rgba[4];
unsigned char* p;
int i1 = 0;
int i2 = 3;
if (alphaOnly)
i1 = i2 = (QSysInfo::ByteOrder == QSysInfo::BigEndian ? 0 : 3);
for (int col = c1; col <= c2; col++) {
p = result.scanLine(r1) + col * 4;
for (int i = i1; i <= i2; i++)
rgba[i] = p[i] << 4;
p += bpl;
for (int j = r1; j < r2; j++, p += bpl)
for (int i = i1; i <= i2; i++)
p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha/16) >> 4;
}
for (int row = r1; row <= r2; row++) {
p = result.scanLine(row) + c1 * 4;
for (int i = i1; i <= i2; i++)
rgba[i] = p[i] << 4;
p += 4;
for (int j = c1; j < c2; j++, p += 4)
for (int i = i1; i <= i2; i++)
p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha/16) >> 4;
}
for (int col = c1; col <= c2; col++) {
p = result.scanLine(r2) + col * 4;
for (int i = i1; i <= i2; i++)
rgba[i] = p[i] << 4;
p -= bpl;
for (int j = r1; j < r2; j++, p -= bpl)
for (int i = i1; i <= i2; i++)
p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha/16) >> 4;
}
for (int row = r1; row <= r2; row++) {
p = result.scanLine(row) + c2 * 4;
for (int i = i1; i <= i2; i++)
rgba[i] = p[i] << 4;
p -= 4;
for (int j = c1; j < c2; j++, p -= 4)
for (int i = i1; i <= i2; i++)
p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha/16) >> 4;
}
return result;
}
+0
Это неправда. В первую очередь потому, что проигрыватель VLC способен размыть видео. И я серьезно сомневаюсь, что это невозможно сделать проще – Dcow
Смежные вопросы
- 1. libvlc "VLC не может открыть MRL 'C: \ Users \ Public \ Videos \ Sample Videos \ Wildlife.mwv'"
- 2. PHP и Youtube Videos
- 3. libvlc-qt и OpenGL
- 4. libvlc и Sout вариант
- 5. Использование LibVLC и создание объекта LibVLC не удалось (Android)
- 6. WWDC2008 и 2009 iPhone Videos
- 7. LibVLC android поиск и переадресация
- 8. Приостановка фоновых gifs/videos
- 9. прямая ссылка facebook videos
- 10. MPMoviePlayerController swapping videos flicker
- 11. Jmeter Cache manager videos
- 12. PHP: Link Videos
- 13. Styling owl carousel videos
- 14. Android YouTubePlayer Restricted Videos
- 15. paly videos using php
- 16. Youtube Videos Thumbnail
- 17. iphone simulator & videos
- 18. FFMPEG concat videos
- 19. Lightbox youtube videos
- 20. jQuery Training Videos
- 21. YouTube API Uploading Videos
- 22. Как скачать Udemy Videos?
- 23. 2D motion blur и gaussian blur, используя чисто GLSL
- 24. libvlc-кварта ошибка перераспределить выполнения примера программы libvlc-кварты
- 25. Где скачать libvlc?
- 26. Построение LibVLC для x86
- 27. Нарушение доступа LibVLC
- 28. Видеоэффекты в libvlc
- 29. Аудиозапись с LibVLC
- 30. libvlc - простой C++ потокового
Я думаю, что эта функция размытия происходит от одного из плагинов VLC. Я не знаю, как получить доступ к функции плагина из модуля libVLC, который мне нужен, чтобы проверить его документацию. –