首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale

    FFMPEG中的swscale提供了视频原始数据(YUV420,YUV422,YUV444,RGB24…)之间的转换,分辨率变换等操作,使用起来十分方便,在这里记录一下它的用法。 swscale主要用于在2个AVFrame之间进行转换。 return 0; } 从代码中可以看出,解码后的视频帧数据保存在pFrame变量中,然后经过swscale函数转换后,将视频帧数据保存在pFrameYUV变量中。

    3.5K10编辑于 2022-09-13
  • 来自专栏ffmpeg

    ffmpeg对pal8进行scale时丢失透明通道问题分析

    一方面在送入 swscale 处理前,会强行指定 swscale 的输出 AVPixelFormat 为 AV_PIX_FMT_BGR8。 通过对 scale 滤镜分析,发现虽然其底层调用的是 swscale,为什么又要对 AV_PIX_FMT_PAL8 做这么多特殊逻辑呢?是不是 swscale 对 PAL8 有什么特殊限制呢? 我们继续深入到 swscale 内部进行分析。我们先看下 sws_isSupportedInput、sws_isSupportedOutput 的实现。 因为 scale 滤镜到 swscale 滤镜中间做了一次 AV_PIX_FMT_BGR8 转换,所以透明通道丢失了。 没有数据在 AVFrame.data[1],所以 swscale 并没有处理AVFrame.data[1],最终输出的帧里面也不会有透明通道。

    51910编辑于 2024-11-29
  • 详解Assertion desc failed at src/libswscale/swscale_internal.h:668

    desc failed at src/libswscale/swscale_internal.h:668 这个错误通常发生在使用FFmpeg中的swscale库进行视频帧格式转换的过程中。 我们可以以视频转码为例来展示如何使用FFmpeg解决在swscale库中遇到的Assertion desc failed错误。 SWScale是FFmpeg项目中的一个库,用于图像尺寸的转换和调整,以及颜色空间的转换等操作。" swscale_internal.h"是SWScale的内部头文件,用于定义内部的结构体、函数和常量等。 结论在使用FFmpeg的swscale库时,遇到Assertion desc failed at src/libswscale/swscale_internal.h:668错误通常表示一个内部断言失败。

    62110编辑于 2024-01-20
  • 来自专栏嵌入式项目开发

    FFMPEG音频视频开发: VS2010+QT4.8.5引用FFMPEG库

    avutil \ -l$$PWD/FFMPEG_WIN32_LIB_4.2.2/lib/swresample \ -l$$PWD/FFMPEG_WIN32_LIB_4.2.2/lib/swscale libavutil/opt.h> #include <libavcodec/avcodec.h> #include <libavformat/avformat.h> #include <libswscale/swscale.h > } #pragma comment(lib, "avcodec.lib") #pragma comment(lib, "avformat.lib") #pragma comment(lib, "swscale.lib

    67720编辑于 2022-01-12
  • 来自专栏Android技术专栏

    如何使用libswscale库将YUV420P格式的图像序列转换为RGB24格式输出?

    下面给出初始化的代码: //video_swscale_core.cpp static AVFrame *input_frame= nullptr; static struct SwsContext * static enum AVPixelFormat src_pix_fmt=AV_PIX_FMT_NONE,dst_pix_fmt=AV_PIX_FMT_NONE; int32_t init_video_swscale <<endl; return -1; } return 0; }   初始化保存输入视频的AVFrame结构,并分配内存空间: //video_swscale_core.cpp 下面给出代码: //video_swscale_core.cpp int32_t transforming(int32_t frame_cnt){ int32_t result=0; uint8 input_file_name,output_file_name); if(result<0){ return -1; } result=init_video_swscale

    1.6K20编辑于 2023-10-22
  • 来自专栏24K纯开源

    ffmpeg编解码视频导致噪声增大的一种解决方法

    而代码中我们正好用了ffmpeg实现的swscale()方法。在正式编码之前,我们需要用该方法将YUV数据转换为RGB数据来处理。因此,此处调用正是症结所在。 既然是swscale()方法的原因,那么是否可以在渲染的时候通过多重采样来降低图形噪声呢?事实上还是too young too simple。开启多重采样还是没有卵用。 我们的渲染库又必须采用RGB格式的数据,难道不用swscale()方法么?是否有替代品呢?       这么一搜索还真有! 编码的视频效果对比如下(上图是libyuv实现,下图是ffmpeg的swscale实现): ? ?       可以看出来,下图有类似于水面波纹一样的噪声,而上图则几乎不可见。

    2.1K70发布于 2018-01-18
  • 来自专栏Android 开发学习

    Android studio 2.2 JNI ffmpeg 简单的播放器(这里只有视频解码)include "libavcodec/avcodec.h"include "libavformat/avf

    PROPERTIES IMPORTED_LOCATION ${lib_src_DIR}/libswresample-2.so) add_library(swscale -4_lib SHARED IMPORTED) set_target_properties(swscale-4_lib PROPERTIES IMPORTED_LOCATION add_library(swscale-4_lib SHARED IMPORTED) set_target_properties(swscale-4_lib PROPERTIES IMPORTED_LOCATION extern "C"{ #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libswscale/swscale.h 故需添加 extern "C"{ include "libavcodec/avcodec.h" include "libavformat/avformat.h" include "libswscale/swscale.h

    2.3K30发布于 2018-06-04
  • 来自专栏android技术

    NDK--Android Studio中配置FFmpeg动态链接库

    IMPORTED_LOCATION ${my_lib_path}/${ANDROID_ABI}/libswresample-1.so) #将第三方库作为动态库引用 add_library(swscale -3 SHARED IMPORTED) #指定第三方库的绝对路径 set_target_properties(swscale-3 PROPERTIES avfilter-5 avformat-56 avutil-54 postproc-53 swresample-1 swscale include "libavcodec/avcodec.h" //封装格式处理 #include "libavformat/avformat.h" //像素处理 #include "libswscale/swscale.h

    1.5K20发布于 2020-07-02
  • 来自专栏遊俠扎彪

    ffmpeg-4.0裁剪与API开发笔记

    disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-avdevice --disable-swresample --disable-swscale disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-avdevice --disable-swresample --disable-swscale

    86540发布于 2018-06-07
  • 来自专栏转载gongluck的CSDN博客

    FFmpeg菜鸡互啄#第2篇#配置VS开发环境

    extern "C" { #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libswscale/swscale.h ) #pragma comment(lib, "postproc.lib") #pragma comment(lib, "swresample.lib") #pragma comment(lib, "swscale.lib ▫ swscale:视频像素数据格式转换 #define __STDC_CONSTANT_MACROS #ifndef INT64_C #define INT64_C(c) (c ## LL) #define

    1.5K60发布于 2018-03-08
  • 来自专栏C/C++与音视频

    Android studio 导入ffmpeg库的最佳实践

    /ThirdLibs/${ANDROID_ABI}/libswresample.so) add_library(swscale SHARED IMPORTED) set_target_properties (swscale PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/.. avutil postproc swresample swscale

    2K20编辑于 2022-06-14
  • 来自专栏音视频技术

    FFmpeg 5.0 正式发布

    : 主要API更改和弃用包括: avcodec编解码操作方面的大量更改 用于音频和视频编解码处理的API 解耦了编解码器的输入和输出操作 新的回调方式:允许编码器输出的数据存储到用户可管理的缓冲区域 swscale )的解码器 在VideoToolbox的支持能力中增加了VP9和Prores的编解码能力 对Vulkan支持(尤其是Vulkan filter)的改进 龙芯的新架构loongarch平台的支持与优化 swscale

    92330编辑于 2022-02-11
  • 来自专栏专业duilib使用+业余界面开发

    c/c++使用ffmepg库获取视频信息(宽高时长等)

    extern "C" { #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libswscale/swscale.h avutil.lib") #pragma comment(lib,"postproc.lib") #pragma comment(lib,"swresample.lib") #pragma comment(lib,"swscale.lib

    1.1K31编辑于 2023-10-16
  • 来自专栏Android技术专栏

    怎么在Android项目中导入ffmpeg库?

    /jniLibs/armeabi-v7a/libswresample.a) add_library(swscale STATIC IMPORTED) set_target_properties(swscale avformat avdevice avfilter avutil postproc swresample swscale

    83010编辑于 2023-12-13
  • 来自专栏FFmpeg实战

    FFmpeg开发笔记(四)FFmpeg的动态链接库介绍

    这八个库的名字是avcodec、avdevice、avfilter、avformat、avutil、postproc、swresample、swscale,下面分别对这些库展开介绍。 8、swscale swscale是FFmpeg的视频图像转换库,它主要用于图像缩放、色彩空间转换等功能,其中色彩空间转换有时也被称作像素格式转换,比如把视频帧从YUV格式转换为RGB格式。

    2.1K10编辑于 2024-03-30
  • 来自专栏韩曙亮的移动开发专栏

    【Android FFMPEG 开发】Android Studio 中配置 FFMPEG 库注意事项 ( 静态库 链接 libz.so 库 | 导入 FFMPEG 函数库顺序 )

    推荐顺序 : ① avfilter , ② avformat , ③ avcodec , ④ avutil , ⑤ swresample , ⑥ swscale ; # FFMPEG 静态库 avformat 库 avfilter avformat avcodec avutil swresample swscale avformat 库 avfilter avformat avcodec avutil swresample swscale

    1.5K20编辑于 2023-03-27
  • 来自专栏韩曙亮的移动开发专栏

    【音视频原理】图像相关概念 ⑥ ( YUV 与 RGB 之间的转换 | YUV444 颜色编码格式 转为 RGB 格式 | RGB 颜色编码格式 转为 YUV444 格式 )

    YUV 分量取值范围 : 0 ~ 255 ; 这类 标准 是在 计算机 中使用的 ; 4、转换函数库 实际使用时 , RGB 与 YUV 编码格式转换 , 都是调用接口实现 , 如 FFmpeg 的 swscale 库 , 或者 libyuv 库 ; FFmpeg 的 swscale 库 是用于图像缩放和像素格式转换的库 , 该函数库 提供了 高度优化的函数 , 用于在不同的像素格式之间进行转换 , 以及进行图像的大小调整

    4.3K20编辑于 2024-01-22
  • 来自专栏包子的书架

    FFmpeg4.0.2编译32位和64位动态库,并且引入到Android项目中

    PROPERTIES IMPORTED_LOCATION ${DIR}/libswresample-3.so ) # 添加音频采样数据格式转换库 add_library(swscale -5 SHARED IMPORTED) set_target_properties( swscale-5 PROPERTIES IMPORTED_LOCATION avutil-56 avresample-4 swresample-3 swscale System.loadLibrary("avresample-4"); System.loadLibrary("swresample-3"); System.loadLibrary("swscale

    3.3K31发布于 2020-07-14
  • 来自专栏码农爱学习的专栏

    嵌入式Qt-FFmpeg设计一个RTSP播放器

    1 FFMPEG 库介绍 1.1 ffmpeg的7个库 ffmpeg有7个library,分别是: avutil swscale swresample avcodec avformat avdevice swscale 视频像素数据格式转换 swscale库执行高度优化的图像缩放以及色彩空间和像素格式转换操作,这个库执行以下转换: Recailing:是改变视频大小的过程。 ffmpeg/lib/x64/postproc.lib \ $$PWD/ffmpeg/lib/x64/swresample.lib \ $$PWD/ffmpeg/lib/x64/swscale.lib

    1.8K20编辑于 2022-10-04
  • 来自专栏字节流动

    FFmpeg 播放器视频渲染优化

    视频渲染优化 前文中,我们都是将解码的视频帧通过 swscale 库转换为 RGBA 格式,然后在送给 OpenGL 渲染,而视频帧通常的格式是 YUV420P/YUV420SP ,所以大部分情况下都需要 swscale 进行格式转换。 当视频尺寸比较大时,再用 swscale 进行格式转化的话,就会存在性能瓶颈,所以本文将 YUV 到 RGBA 的格式转换放到 shader 里,用 GPU 来实现格式转换,提升渲染效率。 ? image.pLineSize[0] = frame->linesize[0]; image.ppPlane[0] = frame->data[0]; } else { //其他格式由 swscale

    3.7K30发布于 2020-09-22
领券