Não é possível obter compressão sem perdas para trabalhar com ffmpeg com upscaling no windows 10

1

Eu estou tentando converter uma sequência de imagens png em um vídeo sem perdas enquanto faço upscaling (mantendo a mesma proporção). Eu anexei uma imagem png

.

Noentanto,todasasopçõessemperdasqueeuusonãosãoobviamentesemperdaouresultamemvídeocorrompido.

Eutenteiffmpeg-framerate60-i%d.png-vfscale=-1:2160-c:vlibx264-crf0-presetveryslow-c:alibmp3lame-b:a320koutput.mp4Eutenteiadicionarasaídadalinhacmd,masestesitereclamaqueminhaperguntaéspamseeufizerenãomedeixapostá-lo.

Qualeuachoquedeveserlosslessdevidoao-crf0,noentanto,fazendoissoproduzumvídeocorrompidodeacordocomvlc,windowsmediaplayerefirefox.Noentanto,ochromeconseguejogá-lo,masosresultadosnestecasosãoobviamentecomperdas.Mostradoaqui,vocêpodeverfaixasconcêntricasdecormuitonítidasquenãoestãoláno.pngreal,queemvezdissocaisuavemente. Compressão com perdas

Eu testei isso com o conjunto completo de imagens que eu quero transformar em um vídeo, e apenas 3 quadros para que eu possa ter certeza de que não há nada errado com a entrada .png, em ambos os casos os mesmos resultados ocorrer.

Eu encontrei depois de pesquisar on-line que adicionando -pix_fmt yuv420p pode ajudar, então tentei isso

ffmpeg -framerate 60 -i %d.png -vf scale=-1:2160 -c:v libx264 -crf 0 -preset veryslow -c:a libmp3lame -b:a 320k -pix_fmt yuv420p output.mp4

Isso permite que o VLC abra-o (no entanto, o firefox e o windows media player ainda dizem que ele está corrompido). No entanto, ainda é obviamente compactado com perdas tanto no cromo quanto no VLC.

Eu tentei ffmpeg -framerate 60 -i %d.png -vf scale=-1:2160 -c:v libvpx-vp9 -lossless 1 output.webm

O que eu entendo deve ser sem perdas devido a 1-sem, no entanto, fazendo isso resulta em um resultado muito estranho. No VLC e no firefox, a saída é apenas preta. No entanto, no chrome, a saída é principalmente um plano de fundo verde que vai do verde escuro na parte inferior da tela até o verde claro no topo, com um círculo verde mais escuro no meio e o texto no canto superior esquerdo ficou rosa. No windows media player, a saída é semelhante, no entanto, não há círculo verde escuro no centro, e o texto no canto superior esquerdo mudou para uma luz verde muito brilhante e também foi duplicado abaixo de si mesmo em uma resolução menor, mas maior e alterado para um rosa escuro com um contorno preto.Eu não entendo como isso poderia acontecer

Eutenteiadicionar-pix_fmtyuv420paissocomoantes,ffmpeg-framerate60-i%d.png-vfscale=-1:2160-c:vlibvpx-vp9-lossless1-pix_fmtyuv420poutput.webm

Aofazerisso,asaídanoVLCenofirefoxaindaestáembranco.Noentanto,ochromeeowindowsmediaplayeragoramostramresultadosnormais,masoresultadoéobviamenteumacompactaçãocomperdas.

Eutenteiffmpeg-framerate60-i%d.png-vfscale=-1:2160-c:vffv1-c:umlibmp3lame-b:320koutput.avi

Noentanto,asaídaéapenasumatelapretaembranconoVLC,recém-instaladotantoemumamáquinacomWindows10quantoemumamáquinaUbuntu.Asaídadocmdparaissoé

ffmpeg-framerate60-i%d.png-vfscale=-1:2160-c:vffv1-c:alibmp3lame-b:a320koutput.aviffmpegversionN-91999-g148a21611dCopyright(c)2000-2018theFFmpegdevelopersbuiltwithgcc8.2.1(GCC)20180813configuration:--enable-gpl--enable-version3--enable-sdl2--enable-fontconfig--enable-gnutls--enable-iconv--enable-libass--enable-libbluray--enable-libfreetype--enable-libmp3lame--enable-libopencore-amrnb--enable-libopencore-amrwb--enable-libopenjpeg--enable-libopus--enable-libshine--enable-libsnappy--enable-libsoxr--enable-libtheora--enable-libtwolame--enable-libvpx--enable-libwavpack--enable-libwebp--enable-libx264--enable-libx265--enable-libxml2--enable-libzimg--enable-lzma--enable-zlib--enable-gmp--enable-libvidstab--enable-libvorbis--enable-libvo-amrwbenc--enable-libmysofa--enable-libspeex--enable-libxvid--enable-libaom--enable-libmfx--enable-amf--enable-ffnvcodec--enable-cuvid--enable-d3d11va--enable-nvenc--enable-nvdec--enable-dxva2--enable-avisynthlibavutil56.19.101/56.19.101libavcodec58.30.100/58.30.100libavformat58.18.102/58.18.102libavdevice58.4.103/58.4.103libavfilter7.32.100/7.32.100libswscale5.2.100/5.2.100libswresample3.2.100/3.2.100libpostproc55.2.100/55.2.100Input#0,image2,from'%d.png':Duration:00:00:10.00,start:0.000000,bitrate:N/AStream#0:0:Video:png,rgb24(pc),3840x1408,60fps,60tbr,60tbn,60tbcCodecAVOptionb(setbitrate(inbits/s))specifiedforoutputfile#0(output.avi)hasnotbeenusedforanystream.Themostlikelyreasoniseitherwrongtype(e.g.avideooptionwithnovideostreams)orthatitisaprivateoptionofsomeencoderwhichwasnotactuallyusedforanystream.Streammapping:Stream#0:0->#0:0(png(native)->ffv1(native))Press[q]tostop,[?]forhelpOutput#0,avi,to'output.avi':Metadata:ISFT:Lavf58.18.102Stream#0:0:Video:ffv1(FFV1/0x31564646),bgr0,5891x2160,q=2-31,200kb/s,60fps,60tbn,60tbcMetadata:encoder:Lavc58.30.100ffv1frame=600fps=4.0q=-0.0Lsize=100850kBtime=00:00:10.00bitrate=82616.4kbits/sspeed=0.067xvideo:100830kBaudio:0kBsubtitle:0kBotherstreams:0kBglobalheaders:0kBmuxingoverhead:0.019776%

Anexadoéumlinkparaoarquivodesaída link

Como faço para transformar uma sequência de imagens png em um vídeo compactado sem perdas?

Obrigado por qualquer ajuda

    
por Jack 26.09.2018 / 12:44

0 respostas