caydey / ffshare

An android app to compress image, video and audio files through ffmpeg before sharing them
GNU General Public License v3.0
615 stars 30 forks source link

Allow AMR narrowband and wideband files #108

Open jg110 opened 1 month ago

jg110 commented 1 month ago

Describe the bug Attempting to convert an AMR narrowband or wideband file with the default file extension results in an "Unknown/Unsupported file type" error.

FFMpeg supports these codecs and this error seems to be based on file extension rather than support. Renaming an .amr or .awb file to have an .mp3 extension and using it with FFShare results in a successful conversion.

Settings applied The only settings I've changed are:

App Logs Log from converting a renamed AWB test file:

Command:
ffmpeg -y -i amr_wideband_test.mp3 -preset medium 4e34a902-93e5-4b07-a0d0-d5e4ede78557.mp3
Output:
ffmpeg version n5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
  built with Android (7155654, based on r399163b1) clang version 11.0.5 (https://android.googlesource.com/toolchain/llvm-project 87f1315dfbea7c137aa2e6d362dbb457e388158d)
  configuration: --cross-prefix=aarch64-linux-android- --sysroot=/files/android-sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/ffmpeg-kit/prebuilt/android-arm64/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --target-os=android --enable-neon --enable-asm --enable-inline-asm --ar=aarch64-linux-android-ar --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang++ --ranlib=aarch64-linux-android-ranlib --strip=aarch64-linux-android-strip --nm=aarch64-linux-android-nm --extra-libs='-L/home/taner/Projects/ffmpeg-kit/prebuilt/android-arm64/cpu-features/lib -lndk_compat' --disable-autodetect --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --disable-static --enable-shared --enable-pthreads --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libshine --enable-libspeex --enable-libdav1d --enable-libkvazaar --enable-libx264 --enable-libxvid --enable-libx265 --enable-libvidstab --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-libzimg --disable-openssl --enable-zlib --enable-mediacodec --enable-gpl
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
[amr @ 0xb400007df4e98570] Estimating duration from bitrate, this may be inaccurate
Input #0, amr, from 'saf:8.mp3':
  Duration: 00:00:02.07, bitrate: 22 kb/s
  Stream #0:0: Audio: amr_wb (sawb / 0x62776173), 16000 Hz, mono, fltp, 22 kb/s
Codec AVOption preset (Configuration preset) specified for output file #0 (saf:9.mp3) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
Stream mapping:
  Stream #0:0 -> #0:0 (amr_wb (amrwb) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
Output #0, mp3, to 'saf:9.mp3':
  Metadata:
    TSSE            : Lavf59.27.100
  Stream #0:0: Audio: mp3, 16000 Hz, mono, fltp
    Metadata:
      encoder         : Lavc59.37.100 libmp3lame
size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
size=       6kB time=00:00:02.01 bitrate=  25.7kbits/s speed=46.8x    
video:0kB audio:6kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.591954%
size=N/A time=00:00:02.01 bitrate=N/A speed=46.5x    
video:0kB audio:6kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

Result: SUCCESS
App Version: 1.3.2

File used AMR_test_files.zip