FFmpeg 'scale' filter not present, cannot convert pixel formats.

简介: /*************************************************************************** * FFmpeg 'scale' filter not present, cannot convert pixel formats. * 说明: * 使用FFmpeg的过程中遇到这个问题,记录一下解决办法。
/***************************************************************************
 *  FFmpeg  'scale' filter not present, cannot convert pixel formats. 
 * 说明:
 *     使用FFmpeg的过程中遇到这个问题,记录一下解决办法。
 *
 *                                      2017-2-6 深圳 南山平山村 曾剑锋
 **************************************************************************/

一、参考文档:
    1. 支持各类音频格式的ffmpeg静态编译
        http://andremouche.github.io/ffmpeg/ffmpeg-audio.html
    2. How do I use ffmpeg to take pictures with my web camera?
        http://askubuntu.com/questions/102755/how-do-i-use-ffmpeg-to-take-pictures-with-my-web-camera

二、出错现象:
    # ffmpeg -y  -r 25 -i /dev/video1 out.mp4
    ffmpeg version 3.2 Copyright (c) 2000-2016 the FFmpeg developers
      built with gcc 4.8.3 (Sourcery CodeBench Lite 2014.05-29) 20140320 (prerelease)
      configuration: --enable-cross-compile --cross-prefix=/home/zengjf/tinyfs/buildroot-2016.11.1/output/host/usr/bin/arm-none-linux-gnueabi- --sysroot=/home/zengjf/tinyfs/buildroot-2016.11.1/output/host/usr/arm-buildroot-linux-gnueabi/sysroot --host-cc=/usr/bin/gcc --arch=arm --target-os=linux --disable-stripping --pkg-config=/home/zengjf/tinyfs/buildroot-2016.11.1/output/host/usr/bin/pkg-config --disable-static --enable-shared --prefix=/usr --enable-avfilter --disable-version3 --enable-logging --enable-optimizations --disable-extra-warnings --enable-avdevice --enable-avcodec --enable-avformat --disable-x11grab --enable-network --disable-gray --enable-swscale-alpha --disable-small --enable-dct --enable-fft --enable-mdct --enable-rdft --disable-crystalhd --disable-dxva2 --enable-runtime-cpudetect --disable-hardcoded-tables --disable-memalign-hack --disable-mipsdsp --disable-mipsdspr2 --disable-msa --enable-hwaccels --disable-avisynth --disable-frei0r --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libcdio --disable-libdc1394 --disable-libgsm --disable-libilbc --disable-libnut --disable-libopenjpeg --disable-libschroedinger --disable-libvo-amrwbenc --disable-symver --disable-doc --disable-gpl --disable-nonfree --enable-ffmpeg --disable-ffplay --disable-ffserver --disable-avresample --disable-ffprobe --disable-postproc --disable-swscale --enable-indevs --enable-outdevs --enable-pthreads --enable-zlib --enable-bzlib --disable-libfdk-aac --disable-gnutls --enable-openssl --disable-libopenh264 --disable-vaapi --disable-vdpau --disable-libopencv --disable-libopus --disable-libvpx --disable-libass --disable-libbluray --disable-librtmp --disable-libmp3lame --disable-libmodplug --disable-libspeex --disable-libtheora --disable-libwavpack --disable-libfreetype --disable-fontconfig --disable-libx264 --disable-libx265 --disable-yasm --disable-mmx --disable-sse --disable-sse2 --disable-sse3 --disable-ssse3 --disable-sse4 --disable-sse42 --disable-avx --disable-avx2 --enable-armv6 --disable-vfp --disable-neon --disable-altivec --enable-pic --cpu=cortex-a9
      libavutil      55. 34.100 / 55. 34.100
      libavcodec     57. 64.100 / 57. 64.100
      libavformat    57. 56.100 / 57. 56.100
      libavdevice    57.  1.100 / 57.  1.100
      libavfilter     6. 65.100 /  6. 65.100
      libswresample   2.  3.100 /  2.  3.100
    Input #0, video4linux2,v4l2, from '/dev/video1':
      Duration: N/A, start: 1111.503970, bitrate: 147456 kb/s
        Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 147456 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
    'scale' filter not present, cannot convert pixel formats.
    Error opening filters!
    # 

三、解决方法:
    编译时添加scale的支持:
        --enable-swscale --enable-swscale-alpha --enable-filter=scale 

四、获取一张图片:
    # ffmpeg -f video4linux2 -i /dev/v4l/by-id/usb-Guillemot_Corporation_USB_Camera-
    video-index0  -vframes 1 test.jpeg
    ffmpeg version 3.2 Copyright (c) 2000-2016 the FFmpeg developers
      built with gcc 4.8.3 (Sourcery CodeBench Lite 2014.05-29) 20140320 (prerelease)
      configuration: --enable-cross-compile --cross-prefix=/home/zengjf/tinyfs/buildroot-2016.11.1/output/host/usr/bin/arm-none-linux-gnueabi- --sysroot=/home/zengjf/tinyfs/buildroot-2016.11.1/output/host/usr/arm-buildroot-linux-gnueabi/sysroot --host-cc=/usr/bin/gcc --arch=arm --target-os=linux --disable-stripping --pkg-config=/home/zengjf/tinyfs/buildroot-2016.11.1/output/host/usr/bin/pkg-config --disable-static --enable-shared --prefix=/usr --enable-avfilter --disable-version3 --enable-logging --enable-optimizations --disable-extra-warnings --enable-avdevice --enable-avcodec --enable-avformat --disable-x11grab --enable-network --disable-gray --enable-swscale-alpha --enable-filter=scale --disable-small --enable-dct --enable-fft --enable-mdct --enable-rdft --disable-crystalhd --disable-dxva2 --enable-runtime-cpudetect --disable-hardcoded-tables --disable-memalign-hack --disable-mipsdsp --disable-mipsdspr2 --disable-msa --enable-hwaccels --disable-avisynth --disable-frei0r --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libcdio --disable-libdc1394 --disable-libgsm --disable-libilbc --disable-libnut --disable-libopenjpeg --disable-libschroedinger --disable-libvo-amrwbenc --disable-symver --disable-doc --disable-gpl --disable-nonfree --enable-ffmpeg --enable-ffplay --enable-ffserver --disable-avresample --disable-ffprobe --disable-postproc --enable-swscale --enable-indevs --enable-outdevs --enable-pthreads --enable-zlib --enable-bzlib --disable-libfdk-aac --disable-gnutls --enable-openssl --disable-libopenh264 --disable-vaapi --disable-vdpau --disable-libopencv --disable-libopus --disable-libvpx --disable-libass --disable-libbluray --disable-librtmp --disable-libmp3lame --disable-libmodplug --disable-libspeex --disable-libtheora --disable-libwavpack --enable-libfreetype --disable-fontconfig --disable-libx264 --disable-libx265 --disable-yasm --disable-mmx --disable-sse --disable-sse2 --disable-sse3 --disable-ssse3 --disable-sse4 --disable-sse42 --disable-avx --disable-avx2 --enable-armv6 --disable-vfp --disable-neon --disable-altivec --enable-pic --cpu=cortex-a9
      libavutil      55. 34.100 / 55. 34.100
      libavcodec     57. 64.100 / 57. 64.100
      libavformat    57. 56.100 / 57. 56.100
      libavdevice    57.  1.100 / 57.  1.100
      libavfilter     6. 65.100 /  6. 65.100
      libswscale      4.  2.100 /  4.  2.100
      libswresample   2.  3.100 /  2.  3.100
    Input #0, video4linux2,v4l2, from '/dev/v4l/by-id/usb-Guillemot_Corporation_USB_Camera-video-index0':
      Duration: N/A, start: 59.897642, bitrate: 147456 kb/s
        Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 147456 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
    [swscaler @ 0x600c0] deprecated pixel format used, make sure you did set range correctly
    Output #0, image2, to 'test.jpeg':
      Metadata:
        encoder         : Lavf57.56.100
        Stream #0:0: Video: mjpeg, yuvj422p(pc), 640x480, q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc
        Metadata:
          encoder         : Lavc57.64.100 mjpeg
        Side data:
          cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
    Stream mapping:
      Stream #0:0 -> #0:0 (rawvideo (native) -> mjpeg (native))
    Press [q] to stop, [?] for help
    frame=    1 fps=0.0 q=4.4 Lsize=N/A time=00:00:00.03 bitrate=N/A speed=0.295x    
    video:25kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    # 

 

目录
相关文章
|
6月前
|
存储 数据处理 API
ffmpeg过滤器filter理论与实战
ffmpeg过滤器filter理论与实战
98 0
|
编解码 API
FFmpeg libswscale源码分析3-scale滤镜源码分析
源码分析基于 FFmpeg 4.1 版本。
308 0
FFmpeg libswscale源码分析3-scale滤镜源码分析
刘歧:FFmpeg Filter深度应用
本文来自OnVideo视频创作云平台联合创始人刘歧在LiveVideoStackCon的讲师热身分享,刘歧分享了FFmpeg的基本原理、使用方法及开发方法。在10月19-20日的LiveVideoStackCon 2018上,刘歧还将分享如何通过FFmpeg实现视频版权保护的方法。
5638 0
ffmpeg一些filter用法、以及一些功能命令
1、加字幕          命令:ffmpeg -i  -filter_complex subtitles=filename=-y          说明:利用libass来为视频嵌入字幕,字幕是直接嵌入到视频里的硬字幕。
1659 0
|
数据安全/隐私保护 编解码
FFMPEG 最简滤镜filter使用实例(实现视频缩放,裁剪,水印等)
FFMPEG官网给出了FFMPEG 滤镜使用的实例,它是将视频中的像素点替换成字符,然后从终端输出。我在该实例的基础上稍微的做了修改,使它能够保存滤镜处理过后的文件。在上代码之前先明白几个概念:     Filter:代表单个filter     FilterPad:代表一个filter的输入或...
2735 0
|
编解码 Windows 开发工具
学习FFMPEG,为Encode Filter做准备
转载请注明出处:http://blog.csdn.net/horkychen  又是一篇早期写的资料。   为了实现一个Encode Filter,较为简单的方法是使用FFMPEG来完成,在我们的Windows CE上则要使用HW Codec来完成。
978 0
|
17天前
|
Linux 开发工具 Android开发
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
ijkplayer是由Bilibili基于FFmpeg3.4研发并开源的播放器,适用于Android和iOS,支持本地视频及网络流媒体播放。本文详细介绍如何在新版Android Studio中导入并使用ijkplayer库,包括Gradle版本及配置更新、导入编译好的so文件以及添加直播链接播放代码等步骤,帮助开发者顺利进行App调试与开发。更多FFmpeg开发知识可参考《FFmpeg开发实战:从零基础到短视频上线》。
78 2
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
|
24天前
|
编解码 语音技术 内存技术
FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频
《FFmpeg开发实战:从零基础到短视频上线》一书中的“5.1.2 把音频流保存为PCM文件”章节介绍了将媒体文件中的音频流转换为原始PCM音频的方法。示例代码直接保存解码后的PCM数据,保留了原始音频的采样频率、声道数量和采样位数。但在实际应用中,有时需要特定规格的PCM音频。例如,某些语音识别引擎仅接受16位PCM数据,而标准MP3音频通常采用32位采样,因此需将32位MP3音频转换为16位PCM音频。
42 0
FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频
|
29天前
|
XML 开发工具 Android开发
FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频
ExoPlayer最初是为了解决Android早期MediaPlayer控件对网络视频兼容性差的问题而推出的。现在,Android官方已将其升级并纳入Jetpack的Media3库,使其成为音视频操作的统一引擎。新版ExoPlayer支持多种协议,解决了设备和系统碎片化问题,可在整个Android生态中一致运行。通过修改`build.gradle`文件、布局文件及Activity代码,并添加必要的权限,即可集成并使用ExoPlayer进行网络视频播放。具体步骤包括引入依赖库、配置播放界面、编写播放逻辑以及添加互联网访问权限。
115 1
FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频