Как я могу преобразовать MP4 в AMV?

Формат видео AMV является собственным форматом видеофайла, произведенным для Mp4 плееров, а также MP3-плееров S1 с воспроизведением видео.

Как я могу преобразовать видео MP4 в AMV?

Я хочу сделать это, чтобы заставить его работать над MP3-плеером Bertronic.

Что я попробовал

$ ffmpeg -i input.mp4 output.amv
[NULL @ 0x16d2880] Unable to find a suitable output format for 'output.amv'
output.amv: Invalid argument

Следующий (источник), казалось, работал, но на MP3-плеере он дал сообщение об ошибке:

    $ ffmpeg -i input.mp4 -map_metadata -1 -c:v amv -f avi -q:v 2 -vf scale="320:-16" -c:a libmp3lame -q:a 4 test.amv.encode.amv
ffmpeg version 2.8.10-0ubuntu0.16.04.1 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
  WARNING: library configuration mismatch
  avcodec     configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv --enable-version3 --disable-doc --disable-programs --disable-avdevice --disable-avfilter --disable-avformat --disable-avresample --disable-postproc --disable-swscale --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libvo_aacenc --enable-libvo_amrwbenc
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf56.40.101
  Duration: 00:04:17.91, start: 0.000000, bitrate: 692 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 854x480 [SAR 1:1 DAR 427:240], 560 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 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
[swscaler @ 0x1bea0e0] deprecated pixel format used, make sure you did set range correctly
Output #0, avi, to 'test.amv.encode.amv':
  Metadata:
    ISFT            : Lavf56.40.101
    Stream #0:0: Video: amv (AMVF / 0x46564D41), yuvj420p(pc), 320x176 [SAR 4697:4800 DAR 427:240], q=2-31, 200 kb/s, 23.98 fps, 23.98 tbn, 23.98 tbc (default)
    Metadata:
      encoder         : Lavc56.60.100 amv
    Stream #0:1: Audio: mp3 (libmp3lame) (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp (default)
    Metadata:
      encoder         : Lavc56.60.100 libmp3lame
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> amv (native))
  Stream #0:1 -> #0:1 (aac (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
frame= 6181 fps=500 q=2.0 Lsize=   71370kB time=00:04:17.90 bitrate=2267.0kbits/s    
video:66671kB audio:4302kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.559218%
6
задан 26 December 2016 в 05:32

3 ответа

Можно загрузить измененную копию ffmpeg для поддержки AMV от:

, Как использовать:

ffmpeg -i <input> -f amv -s <width>x<height> -r 16 -ac 1 -ar 22050 -qmin 3 -qmax 3 <output> 

Ссылка: amv-codec-tools - HowToConvertToAMV.wiki

я попробовал amvconv-0.1, и он работает над Ubuntu 16.04, но я не могу протестировать его на физическом устройстве.

$ ./ffmpeg-amv -i ../orig.avi -f amv -s 160x120 -r 16 -ac 1 -ar 22050 -qmin 3 -qmax 3 ../test.amv

$ mediainfo ../test.amv 
General
Complete name                            : ../test.amv
Format                                   : AMV
Format/Info                              : Chinese hack of AVI
File size                                : 8.72 MiB

кодек VLC произвел:

VLC AMV codec

1
ответ дан 23 November 2019 в 08:08

Я нашел, что должен был использовать современную / стандартную версию ffmpeg для преобразования в файл AVI сначала, затем я мог использовать ffmpeg-amv для преобразования от AVI до AMV. Команды, которые я использую, похожи на это:

ffmpeg -i input.mp4 -s 160x128 -y convertedToAVI.avi
./ffmpeg-amv -i convertedToAVI.avi -r 16 -ac 1 -ar 22050 -qmin 3 -qmax 3 convertedToAMV.amv

Отметьте в первой команде, я масштабирую видео к разрешению своего дешевого видеоплеера (160x128). Вы, возможно, должны изменить свое разрешение в зависимости от возможностей Вашего устройства.

Я использую Цифровой Компактный и Портативный MP3 Mymahdi / Mp4 плеер и CentOS 7.5 (но я предполагаю, что это работало бы то же над Ubuntu).

1
ответ дан 23 November 2019 в 08:08

Я создал ответвление проекта amv-ffmpeg, потому что у меня есть два проигрывателя, которым теперь требуются файлы AMV. Вот как я конвертирую файлы в AMV.

Используя обычный FFMPEG, я конвертирую в монофонический WMV-файл размером qqvga.

ffmpeg -i lucas.mp4 \  
       -vcodec msmpeg4 -q:v 1 -s qqvga -r 16 \  
       -acodec wmav2 -ac 1 -ar 22050 \  
       lucas.wmv

Затем я использую свой разветвленный amv-ffmpeg для преобразования WMV в AMV.

amv-ffmpeg -i lucas.wmv lucas.amv

Качество, как видите, отвратительное. Animation showing AMV file playing in a cheap Chinese MP4 player


Чтобы скомпилировать amv-ffmpeg, выполните следующие команды.

git clone https://github.com/vsubhash/amv-ffmpeg.git
cd amv-ffmpeg
./configure
make

Затем исполняемый файл amv-ffmpeg можно найти в каталоге с именем bin внутри каталога, созданного git. Дополнительная информация доступна в моем блоге.

0
ответ дан 4 April 2020 в 10:14

Другие вопросы по тегам:

Похожие вопросы: