输出流#0:1的自动编码器选择失败

时间:2018-06-07 05:54:17

标签: android ffmpeg drawtext android-ffmpeg

我正在尝试使用ffmpeg在Android上编辑一些视频... 它工作正常,但如果我尝试使用drawtext我会收到错误

命令是:

path/ffmpeg -y -i /path/asd.mp4 -map 0 -segment_time 15 -f segment -c:v libx264 -preset veryfast -crf 30 -vf "drawtext=text='test message ':fontfile=/path/arial.ttf:box=1:boxborderw=30:boxcolor=0xE86F67@0.7:fix_bounds=true:fontcolor=0x2A363B:fontsize=32:x=0:y=h" -r 30 -force_key_frames expr:gte(t,n_forced*15) -an /path/temp%03d.mp4

,错误是:

 ffmpeg version 4.0 Copyright (c) 2000-2018 the FFmpeg developers
  built with Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
 configuration: --prefix=/home/rafa/Desktop/m4/build --target-os=linux --arch=i686 --cpu=i686 --cross-prefix=/home/rafa/Desktop/m4/ndk/toolchain/i686/bin/i686-linux-android- --enable-cross-compile --cc=/home/rafa/Desktop/m4/ndk/toolchain/i686/bin/clang --cxx=/home/rafa/Desktop/m4/ndk/toolchain/i686/bin/clang++ --sysroot=/home/rafa/Desktop/m4/ndk/toolchain/i686/sysroot --pkg-config=/usr/bin/pkg-config --pkg-config-flags=--static --enable-pic --enable-gpl --enable-nonfree --enable-static --disable-shared --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-doc --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libx264 --enable-libfdk-aac --enable-bsf=aac_adtstoasc --enable-librtmp --enable-zlib --enable-libfreetype --enable-openssl --enable-libfontconfig --disable-asm --disable-devices --extra-cflags=-mno-stackrealign
  libavutil      56. 14.100 / 56. 14.100
 libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
     libavfilter     7. 16.100 /  7. 16.100
    libswscale      5.  1.100 /  5.  1.100
     libswresample   3.  1.100 /  3.  1.100
     libpostproc    55.  1.100 / 55.  1.100



   major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     title           : 20180226 174005
     artist          : Rafael Lima
     date            : 2018
     encoder         : Lavf55.49.100
     comment         : https://www.youtube.com/watch?v=bkzc9mLyCyo
   Duration: 00:03:26.94, start: 0.000000, bitrate: 4156 kb/s
     Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 4025 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc (default)
     Metadata:
       handler_name    : VideoHandler
     Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
     Metadata:
       handler_name    : SoundHandler
 Automatic encoder selection failed for output stream #0:1. Default encoder for format segment (codec none) is probably disabled. Please choose an encoder manually.
 Error selecting an encoder for stream 0:1

要考虑的事情: 我检查了3次所有路径都有效 2.我已在Windows上的ffmpeg 4.0上测试了相同的命令,它可以[使用相同的视频] 3.如果我删除了drawtext过滤器,它可以正常工作......

我认为ffmpeg是在没有drawtext或者有一些错误的情况下构建的,所以我花了10天时间来构建它并保证每个依赖都没问题...但最后我得到了同样的错误

有没有人有任何想法

============================== 更新

我一直在测试,如果我从过滤器中删除引号并使用没有间距的文本就可以使用

例如: drawtext=text='test_message':fontfile=/path/arial.ttf:box=1:boxborderw=30:boxcolor=0xE86F67@0.7:fix_bounds=true:fontcolor=0x2A363B:fontsize=32:x=0:y=h

所以我相信有一些东西与android如何逃避引号和简单引号有关,因为我用相同的参数编译ffmpeg并且它在ubuntu上运行,文本中有空格(只需要使用简单的引号)

有人知道吗?

0 个答案:

没有答案