我从某个论坛上获得了以下代码。我是初学者,所以请耐心回答我的问题...
我需要将视频从 MTS 转换为 AVI,并且质量非常好。目前我使用以下代码进行转换。
for %%a in ("*.mts") do ffmpeg.exe -i "%%a" -vcodec libxvid -vtag XVID -aspect 16:9 -maxrate 1800k -b 1500k -qmin 10 -qmax 42 -bufsize 5120 -acodec libmp3lame -ac 2 -ab 160k -y "%%~na_xvid.avi"
for %%a in ("*.m2ts") do ffmpeg.exe -i "%%a" -vcodec libxvid -vtag XVID -aspect 16:9 -maxrate 1800k -b 1500k -qmin 10 -qmax 42 -bufsize 5120 -acodec libmp3lame -ac 2 -ab 160k -y "%%~na_xvid.avi"
但我期望获得比上述更好的质量。我该如何获得?
答案1
MPEG-4 第 2 部分视频
当使用编码器编码为 MPEG-4 Part 2 视频时mpeg4
或libxvid
使用-qscale:v
(或别名-q:v
)。
ffmpeg -i input -c:v libxvid -qscale:v 2 -c:a libmp3lame -ac 2 -q:a 4 output.avi
调整
-qscale:v
视频质量和-q:a
(类似于lame -V
)音频质量。对于这两个选项来说,值越低,质量越高。您可能无法区分输入和输出
-qscale:v 2
。
另请参阅:
H.264 和 H.265/HEVC 视频
MPEG-4 Part 2 视频已过时。使用更现代的格式将以更低的比特率提供更好的质量。
简单的例子假设你ffmpeg
支持 libx264/libx265(它可能支持):
ffmpeg -i input output.mp4
上面的例子将使用默认设置,与下面相同:
ffmpeg -i input -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4
- 如果可能的话,请避免使用这些编码器来处理 AVI。
- 使用 AAC 代替 MP3。
另请参阅:
答案2
作为一名业余爱好者,我在 Linux 上ffmpeg -i video.MTS -acodec copy -vcodec rawvideo -y video.avi
保存原始视频和原始音频数据。标志和选项如下
-i: input file
-acodec copy: copy audio codec
-vcodec rawvideo: keep raw data for video codec
-y: silently overwrite output files
对于一个目录中的一堆.mts
文件,运行
for f in *.MTS; do ffmpeg -i $f -acodec copy -vcodec rawvideo -y ${f%.*}.avi; done
虽然这会导致文件非常大,但仍然保留了视频的质量.avi
。