Не удалось автоматически выбрать кодер для выходного потока № 0: 1 - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь использовать 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

на что следует обратить внимание: 1. Я проверил 3 раза все пути действительны 2. Я протестировал ту же команду на ffmpeg4.0 на Windows, и он работает [с тем же видео] 3. Если я удаляю фильтр drawtext, он работает нормально ...

Я думал, что ffmpeg был создан без drawtext или с некоторой ошибкой, поэтому я провел 10 дней вчтобы построить его самостоятельно и гарантировать, что все зависимости в порядке ... но в конце я получил ту же ошибку

кто-нибудь есть идеи, пожалуйста

============================== ОБНОВЛЕНИЕ

Я продолжаю тестирование, и если я удаляю кавычки из фильтра и использую текст без пробелов, это работает

ex: 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 с пробелами в тексте (просто нужно использовать простые кавычки)

кто-нибудь знает об этом?

...