video - 使用 ffmpeg 进行 AVI 压缩,同时保持 alpha channel ,用于 Adob​​e Premiere

标签 video ffmpeg adobe

一般来说,在处理视频转换/编码方面,我是一个新手,但我花了几天时间试图弄清楚 ffmpeg 或任何其他方法是否能够压缩具有 rgb+a 的 .avi。我已经能够获得一些在 VLC 中播放时似乎可以工作的文件,但它们不会加载到 Adob​​e Premiere 以验证是否维护了 alpha,我认为这是一个编解码器问题和/或像素格式问题,但是所以到目前为止,我还无法确定它。
另外,我不确定是否建议使用 alpha 压缩 .avi,因为它可能会导致压缩质量问题。如果这意味着减小文件大小,那么一些质量损失是可以的。
我的目标是将 avi 文件转换为较小的视频文件,即大小不是数 GB。目前我有约 8 秒透明的下三分之一文件,大小约为 2GB。简单地调整比特率并没有做到这一点,因为这似乎消除了 alpha channel ,我最终得到了带有白色背景的 RGB。我尝试使用具有各种不同像素格式的 PNG 编解码器。这产生了可以在 VLC 中打开的文件,但不能在 Adob​​e Premiere 中打开。我怀疑这与编解码器有关,但至于它是什么,我不知道。
现在,这似乎是不可能的。以下是我尝试过的一些示例: ffmpeg -i "input.avi" -map 0 -c:v png -c:a copy "Compressed.avi"--这只是创建一个在 vlc 中打开的文件,而不是首映ffmpeg.exe -i "input.avi" -vcodec png -b:v 64k -pix_fmt rgb32 "Compressed.avi"--这和上面做的一样,我在这个list上尝试了每个像素格式没有成功。ffmpeg.exe -i "input.avi" -b:v 64k -pix_fmt bgr32 "Compressed.avi"--这只会产生一个白色背景的avi,杀死alpha。
那是我最近的一次。比特率值可能是任意的,因为我也尝试过修改和不修改比特率。我不知道是否有办法让 Premiere 识别使用 PNG 编解码器在 VLC 中打开的文件,或者我是否缺少某些东西,或者这是否完全不可能。输出也不需要是 .avi,只要它将在 Premiere 中打开即可。
--
编辑:在评论中要求,从 ffmpeg -i input.avi 输出

ffmpeg version 4.3.1-2020-11-19-essentials_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 10.2.0 (Rev5, 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-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-libfreetype --enable-libfribidi --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-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, avi, from 'input.avi':
  Metadata:
    date            : 2020-12-09T20:27:57.080928
  Duration: 00:00:10.00, start: 0.000000, bitrate: 1990700 kb/s
    Stream #0:0: Video: rawvideo, bgra, 1920x1080, 1997313 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc
At least one output file must be specified
-- 编辑 2:
从评论中尝试了这个,它产生了一个保留 alpha 的 .mov,但它从文本阴影中拾取白色像素值,从而产生了外部发光效果:ffmpeg -i "input.avi" -map 0 -pix_fmt rgba -c:v png -c:a copy "compressed.mov"我还尝试了以下方法,除了投影中类似的透明度问题外,我还得到了丢帧:ffmpeg -i "input.avi" -map 0 -pix_fmt rgba -c:v qtrle -c:a copy "compressed.mov"

最佳答案

保存到 MOV。 Premiere 可能对 AVI 文件中的编解码器很挑剔。

ffmpeg -i "input.avi" -map 0 -pix_fmt rgba -c:v png -c:a copy "Compressed.mov"

关于video - 使用 ffmpeg 进行 AVI 压缩,同时保持 alpha channel ,用于 Adob​​e Premiere,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65226097/

相关文章:

python - 调用 ffmpeg 仅在后台杀死脚本

ios - Aviary/Adobe Creative SDK 图像组件 - 图像编辑器 UI : Authentication and login

c# - 访问 Adob​​e 打印首选项输出文件夹

debugging - Extendscript Toolkit 调试器失败 : Can't start debug session

html - Canvas 到视频在 Safari Lion/Mountain Lion 上非常慢

python - 为什么 `subprocess.call` 没有调用命令

c - “C”程序将音频文件输出到 FFMPEG 并生成视频文件

ffmpeg - 使用 ffms2(ffmegsource) 进行音频解码

video - 使用ffmpeg选择过滤器

java - 如何在本地和远程服务器上存储内容