About March, at that time, I found about convert MPEG4 to AMV via ffmpeg in superuser. And successfully uses this command to convert MP4 to AMV:
ffmpeg -i C:\Users\26591\Videos\WebADB-Demo.mp4 -s 160x120 -ac 1 -ar 22050 -vstrict -1 -r 25 -block_size 882 C:\Users\26591\Videos\WebADB-Demo.amv
At that time, I was using ffmpeg of GIT version of windows. When I tried to run this line of code on Ubuntu, I was prompted that the AMV stream was not found. Then I got the answer on Using ffmpeg to convert video: solution to rejected AMV container?
But when I tried this code on the GIT version of ffmpeg today, I got an error message:
C:\Users\26591\Documents>ffmpeg -i C:\Users\26591\Videos\WebADB-Demo.mp4 -s 160x120 -ac 1 -ar 22050 -vstrict -1 -r 25 -block_size 882 C:\Users\26591\Videos\WebADB-Demo.amv
ffmpeg version 2022-08-29-git-f99d15cca0-full_build-www.gyan.dev Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 12.1.0 (Rev2, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
libavutil 57. 34.100 / 57. 34.100
libavcodec 59. 42.103 / 59. 42.103
libavformat 59. 30.100 / 59. 30.100
libavdevice 59. 8.101 / 59. 8.101
libavfilter 8. 46.103 / 8. 46.103
libswscale 6. 8.104 / 6. 8.104
libswresample 4. 9.100 / 4. 9.100
libpostproc 56. 7.100 / 56. 7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Users\26591\Videos\WebADB-Demo.mp4':
Metadata:
major_brand : isom
minor_version : 0
compatible_brands: mp41avc1
creation_time : 2017-09-29T13:11:57.000000Z
encoder : vlc 2.2.6 stream output
encoder-eng : vlc 2.2.6 stream output
Duration: 00:00:11.96, start: 0.000000, bitrate: 720 kb/s
Stream #0:0[0x1](eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, 719 kb/s, 24.92 fps, 25 tbr, 1000k tbn (default)
Metadata:
creation_time : 2017-09-29T13:11:57.000000Z
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Codec AVOption block_size (set the block size) specified for output file #0 (C:\Users\26591\Videos\WebADB-Demo.amv) 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.
File 'C:\Users\26591\Videos\WebADB-Demo.amv' already exists. Overwrite? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> amv (native))
Press [q] to stop, [?] for help
[swscaler @ 0000028e3b9d6d00] [swscaler @ 0000028e3be000c0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0000028e3b9d6d00] [swscaler @ 0000028e3be36e00] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0000028e3b9d6d00] [swscaler @ 0000028e3be7ae80] deprecated pixel format used, make sure you did set range correctly
[amv @ 0000028e3abded40] AMV files only support 2 streams
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:0 --
Conversion failed!
Before this, this line of code is free of any warnings and errors. When ffmpeg prompts me that I have not selected any video stream, I modified the code to read:
ffmpeg -i C:\Users\26591\Videos\WebADB-Demo.mp4 -s 160x120 -ac 1 -ar 22050 -vstrict -1 -r 25 -block_size 882 -map 0:0 -c:v amv -c:a adpcm_ima_amv -pix_fmt yuvj420p C:\Users\26591\Videos\WebADB-Demo.amv
However, the error has not changed, and I don't know why AMV only supports two streams. Why did this problem not appear in the previous git version ffmpeg? Can anyone help me solve this problem?(This is my conversion file:https://drive.google.com/file/d/14-2O38Sq04QyJXREJ7rLAAcfTPx4Lp8H/view?usp=sharing)
2022.09.01---According to pieru and ROTEM's comments, I changed another file. This video file is in WebM format, but this video has video stream and audio stream. I tried to use the modified command to convert it, but the error did not change at all:
C:\Users\26591\Documents>ffmpeg -i C:\Users\26591\Pictures\0801f452a88bdf167b0f308c4cd6e7d9.webm -s 160x120 -ac 1 -ar 22050 -vstrict -1 -r 25 -block_size 882 -map 0:0 -c:v amv -c:a adpcm_ima_amv -pix_fmt yuvj420p C:\Users\26591\Videos\0801f452a88bdf167b0f308c4cd6e7d9.amv
ffmpeg version 2022-08-29-git-f99d15cca0-full_build-www.gyan.dev Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 12.1.0 (Rev2, Built by MSYS2 project)
libavutil 57. 34.100 / 57. 34.100
libavcodec 59. 42.103 / 59. 42.103
libavformat 59. 30.100 / 59. 30.100
libavdevice 59. 8.101 / 59. 8.101
libavfilter 8. 46.103 / 8. 46.103
libswscale 6. 8.104 / 6. 8.104
libswresample 4. 9.100 / 4. 9.100
libpostproc 56. 7.100 / 56. 7.100
Input #0, matroska,webm, from 'C:\Users\26591\Pictures\0801f452a88bdf167b0f308c4cd6e7d9.webm':
Metadata:
title : アニメ_途中, ayaka
URL : http://ginziro.blog45.fc2.com/blog-entry-1102.html
MAJOR_BRAND : isom
MINOR_VERSION : 512
COMPATIBLE_BRANDS: isomiso2avc1mp41
ENCODER : Lavf58.27.103
Duration: 00:00:24.26, start: -0.007000, bitrate: 1730 kb/s
Stream #0:0: Video: vp9 (Profile 0), yuv420p(tv), 640x480, SAR 1:1 DAR 4:3, 30 fps, 30 tbr, 1k tbn (default)
Metadata:
HANDLER_NAME : VideoHandler
ENCODER : Lavc58.52.101 libvpx-vp9
DURATION : 00:00:24.207000000
Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
HANDLER_NAME : SoundHandler
ENCODER : Lavc58.52.101 libopus
DURATION : 00:00:24.257000000
Codec AVOption block_size (set the block size) specified for output file #0 (C:\Users\26591\Videos\0801f452a88bdf167b0f308c4cd6e7d9.amv) 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 (vp9 (native) -> amv (native))
Press [q] to stop, [?] for help
[swscaler @ 000001c2d0810000] [swscaler @ 000001c2d081cfc0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 000001c2d0810000] [swscaler @ 000001c2d083e840] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 000001c2d0810000] [swscaler @ 000001c2d086c0c0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 000001c2d0831e40] [swscaler @ 000001c2d083ee40] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 000001c2d0831e40] [swscaler @ 000001c2d08600c0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 000001c2d0831e40] [swscaler @ 000001c2d0810000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 000001c2d0831e40] [swscaler @ 000001c2d083ee40] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 000001c2d0831e40] [swscaler @ 000001c2d0810000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 000001c2d0831e40] [swscaler @ 000001c2d08680c0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 000001c2d0831e40] [swscaler @ 000001c2d083ee40] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 000001c2d0831e40] [swscaler @ 000001c2d08600c0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 000001c2d0831e40] [swscaler @ 000001c2d0810000] deprecated pixel format used, make sure you did set range correctly
[amv @ 000001c2d06ac840] AMV files only support 2 streams
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:0 --
Conversion failed!
I have also tried to convert WebM files to MPEG4 files, but nothing has changed except that there are fewer warnings from swscaler(This is my conversion files:
https://drive.google.com/file/d/1C59-mA8glObl4eyvf8vD2jj8lqAhEQla/view?usp=sharing
https://drive.google.com/file/d/1SlM-eHv5RNZV8DtkI9lSG15IwbS3DQfr/view?usp=sharing)