【问题标题】:FFMPEG Encode .avi/.mov with alpha channel to .3g2 (with alpha kept)FFMPEG 将带有 alpha 通道的 .avi/.mov 编码为 .3g2(保留 alpha)
【发布时间】:2017-09-20 11:15:02
【问题描述】:

我想使用 FFMPEG 将我的 32 位视频(.avi 或 .mov)RGB+A 转换为 .3g2 格式,并保留 alpha 通道。

应该是这样的

ffmpeg -i C:\Users\naldo\Desktop\test.avi  -vcodec libx264 -acodec libfaac -ab 48k -ar 22050 -ac 2 C:\Users\naldo\Desktop\test.alpha.3g2

但它不起作用。 有任何想法吗 ? 谢谢!

【问题讨论】:

    标签: ffmpeg converter alpha


    【解决方案1】:

    您选择的编解码器 H.264 不支持 alpha。 3GP 的默认编解码器 H.263 也没有。

    编辑:基于支持论坛上的更多信息given 和参考file,这是 alpha 堆叠方法的答案。

    参考视频中没有 Alpha 通道。所做的工作是将 alpha 流与由颜色通道形成的图像堆叠在一起,处理应用程序使用图像的第二半作为合成键。

    为此,请使用:

    ffmpeg -i in.mov -filter_complex "[0]transpose=2,split[v][va];[va]alphaextract[a];[v][a]hstack" -c:v libx264 out.3g2
    

    根据参考文件,视频首先逆时针旋转 90 度。请注意,该参考使用 H.263,而 ffmpeg 的编码器仅支持某些预设大小。我的命令中使用的 H.264 没有这样的限制。

    要根据 cmets 命令中的设置进行编码,请使用

    ffmpeg -i in.mov -filter_complex "[0]transpose=2,split[v][va];[va]alphaextract[a];[v][a]hstack,scale=640x360,setdar=18/16" -c:v mpeg4 -vb 400k -r 20 -c:a aac -ar 22050 out.alpha.3g2
    

    【讨论】:

    • 您好,感谢您的帮助!这里是 cmets" ffmpeg: unrecognized option '-filter_complex' 之前,我需要提到外部的 .alpha。以及之后使用的 AR 软件。
    • 我以前和我一起做过的朋友给我发了一个 .sh 文件,他从我们上一个文件夹的工作中恢复了该文件。这是最后一句:"$FFMPEG_EXE_PATH" -i "$1" -vf "[orig] transpose=dir=2 [rotated]; [rotated] split [a][b]; [b] alphaextract [alphaAsGrayscale]; [ alphaAsGrayscale] pad=iw*2:ih:iw:0 [alphaAsGrayscalePadded]; [alphaAsGrayscalePadded][a] overlay" -vcodec mpeg4 -s 640x360 -aspect $((HEIGHT*2)):$WIDTH -vb 400000 -r 20 -acodec aac -strict 实验性 -ar 22050 out.alpha.3g2
    • 如果你没有打错字,你的 ffmpeg 已经很老了。从here 获取最近的静态构建。
    • 新版本没有变化。还是行不通。我会尝试更多,很快就会给你发表评论。
    • 您好,我有一个来自应用程序的新代码,但使用的是他们的 ffmpeg 版本 ffmpeg -i C:\convert-flv\01.avi -vf "split[a][b]; [a ]pad=iw:ih*2[src]; [b]format=rgba,alphaextract[filt]; [src][filt]overlay=0:h" C:\convert-flv\01_1.avi 它适用于.avi。但现在,我无法让它适用于 .3g2 或其他 FFMPEG 版本。
    【解决方案2】:

    QuickTime 支持 alpha 和 WebM。

    ffmpeg -i image%04d.png output.webm
    

    【讨论】:

    • (对不起我的英文)我将在重新编码后使用的软件,需要.3g2格式,独占。所以我需要保留.3g2,但要找到另一个编解码器,对吗?
    • 我不确定 3g2 格式和 alpha,但也许使用不同的编解码器或容器会有所帮助。 ffmpeg -i test.mpg -acodec libfaac -ab 64k -ar 22050 -vcodec mpeg4 -s qcif -b 120k -r 30 out.3g2
    猜你喜欢
    • 2021-10-03
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多