2017-10-10 91 views
0

我需要倒轉視頻並保留alpha通道。 ffmpeg(版本3.3.4)做得很好,但我無法弄清楚如何保持alpha通道。倒車時保持透明

這裏是我執行命令:

ffmpeg -i curtain.webm -vf reverse reversed.webm 

按照我在網上相反過濾器不應該改變對質量什麼,只能反向幀上發現的,但生成的文件小於原本的。


由於要求在評論,這裏的全控制檯輸出:

ffmpeg -i curtain.webm -vcodec vp9 -vf reverse curtain_retry.webm 
ffmpeg version 3.3.4 Copyright (c) 2000-2017 the FFmpeg developers 
built with Apple LLVM version 8.1.0 (clang-802.0.42) 
configuration: --prefix=/opt/local --enable-swscale --enable-avfilter 
--enable-avresample --enable-libmp3lame --enable-libvorbis --enable-libopus 
--enable-libtheora --enable-libschroedinger --enable-libopenjpeg 
--enable-libmodplug --enable-libvpx --enable-libsoxr --enable-libspeex 
--enable-libass --enable-libbluray --enable-lzma --enable-gnutls 
--enable-fontconfig --enable-libfreetype --enable-libfribidi --disable-libxcb 
--disable-libxcb-shm --disable-libxcb-xfixes --disable-indev=jack 
--disable-outdev=xv --enable-audiotoolbox --enable-sdl2 
--mandir=/opt/local/share/man --enable-shared --enable-pthreads 
--cc=/usr/bin/clang --enable-vda --enable-videotoolbox --arch=x86_64 
--enable-yasm --enable-libx265 --enable-gpl --enable-postproc --enable-libx264 
--enable-libxvid 
    libavutil  55. 58.100/55. 58.100 
    libavcodec  57. 89.100/57. 89.100 
    libavformat 57. 71.100/57. 71.100 
    libavdevice 57. 6.100/57. 6.100 
    libavfilter  6. 82.100/6. 82.100 
    libavresample 3. 5. 0/3. 5. 0 
    libswscale  4. 6.100/4. 6.100 
    libswresample 2. 7.100/2. 7.100 
    libpostproc 54. 5.100/54. 5.100 
Input #0, matroska,webm, from 'curtain.webm': 
    Metadata: 
    encoder   : Lavf57.71.100 
    Duration: 00:00:04.37, start: 0.000000, bitrate: 976 kb/s 
    Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, progressive), 1920x1080, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 1k tbn, 1k tbc (default) 
    Metadata: 
     alpha_mode  : 1 
Stream mapping: 
    Stream #0:0 -> #0:0 (vp9 (native) -> vp9 (libvpx-vp9)) 
Press [q] to stop, [?] for help 
[libvpx-vp9 @ 0x7fab4800d200] v1.6.1 
Output #0, webm, to 'curtain_retry.webm': 
    Metadata: 
    encoder   : Lavf57.71.100 
    Stream #0:0(eng): Video: vp9 (libvpx-vp9), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 200 kb/s, 30 fps, 1k tbn, 30 tbc (default) 
    Metadata: 
     alpha_mode  : 1 
     encoder   : Lavc57.89.100 libvpx-vp9 
    Side data: 
     cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 
    frame= 131 fps=2.7 q=0.0 Lsize=  94kB time=00:00:04.33 bitrate= 177.4kbits/s speed=0.0909x  
    video:92kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.486628% 
+0

分享完整的控制檯輸出。 – Mulvya

回答

0

於是我找到了解決辦法。

短版本:

ffmpeg -i original.mov -vcodec qtrle -vf reverse reversed.mov 

之後,它並沒有給reversed.mov轉換爲.webm文件的透明度問題。


加長版:

我也試圖與該文件的源版本的命令(MOV格式,編解碼器的Apple QuickTime視頻RLE,606.4MB)和生成的文件是迄今爲止體積更小,有一個不同的編碼(H264,594KB)。所以它肯定有些東西與ffmpeg選擇我的輸出文件結尾不支持透明度默認編碼。所以我在ffmpeg -codecs中查找了RLE,並將其設置爲顯式編解碼器。

我仍然不明白爲什麼在反轉.webm文件時透明度會丟失,因爲輸入和輸出都具有相同的編碼(VP9)。我試圖明確地設置編解碼器,但是這並沒有改變任何有關透明度迷失的問題。

相關問題