You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FFmpeg报错:Command not found - -c:v libx264,裁剪后缩放问题求助

FFmpeg裁剪+缩放滤镜报错问题解决

问题描述

我有一个HTTPS输入源,需要裁剪顶部控制栏和侧边聊天栏。单独使用-vf "crop=1600:980:0:1080"时可正常运行,但添加缩放参数使用-vf \"crop=1600:980:0:180,scale=1920:1080\"(也曾尝试用分号分隔滤镜)时,出现错误:Command not found - -c:v libx264。脚本中的FFmpeg代码片段如下:

ffmpeg \
  -hide_banner -loglevel error \
  -nostdin \
  -s ${CAPTURE_SCREEN_RESOLUTION} \
  -r ${VIDEO_FRAMERATE} \
  -draw_mouse 0 \
  -f x11grab \
    -i ${DISPLAY} \
  -f pulse \
    -ac 2 \
    -i default \
  -vf \"crop=1600:980:0:1080,scale=1920:1080\" \
  -c:v libx264 \
    -pix_fmt yuv420p \
    -profile:v main \
    -preset slow \
    -x264opts \"nal-hrd=cbr:no-scenecut\" \
    -minrate ${VIDEO_BITRATE} \
    -maxrate ${VIDEO_BITRATE} \
    -g ${VIDEO_GOP} \
  -c:a aac \
    -b:a ${AUDIO_BITRATE} \
    -ac ${AUDIO_CHANNELS} \
    -ar ${AUDIO_SAMPLERATE} \
  -f flv ${RTMP_URL}

解决方法

错误根源是-vf参数里的多余转义引号,导致shell提前截断FFmpeg命令,把后续的-c:v libx264识别成了独立的新命令,从而触发报错。

修正步骤:

  • 直接去掉-vf和-x264opts参数中的转义符\,用双引号直接包裹内容即可:
    -vf "crop=1600:980:0:180,scale=1920:1080"
    -x264opts "nal-hrd=cbr:no-scenecut"
    
  • FFmpeg的滤镜链默认用逗号,分隔,不需要用分号。只有在滤镜内部需要分号时才会用到,当前场景完全不需要。

修正后的完整脚本片段:

ffmpeg \
  -hide_banner -loglevel error \
  -nostdin \
  -s ${CAPTURE_SCREEN_RESOLUTION} \
  -r ${VIDEO_FRAMERATE} \
  -draw_mouse 0 \
  -f x11grab \
    -i ${DISPLAY} \
  -f pulse \
    -ac 2 \
    -i default \
  -vf "crop=1600:980:0:180,scale=1920:1080" \
  -c:v libx264 \
    -pix_fmt yuv420p \
    -profile:v main \
    -preset slow \
    -x264opts "nal-hrd=cbr:no-scenecut" \
    -minrate ${VIDEO_BITRATE} \
    -maxrate ${VIDEO_BITRATE} \
    -g ${VIDEO_GOP} \
  -c:a aac \
    -b:a ${AUDIO_BITRATE} \
    -ac ${AUDIO_CHANNELS} \
    -ar ${AUDIO_SAMPLERATE} \
  -f flv ${RTMP_URL}

内容的提问来源于stack exchange,提问作者Mash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 18:40:40