ffmpeg não pode converter vídeo cinza em avi

0

Eu transcodificaria um arquivo de vídeo GRAY ou YUV400 em um AVI (YUV420P). Meu arquivo de entrada é apenas 1920x1080 Y, seu tamanho é 22809600 = > 11 quadros. Eu usei a seguinte linha de comando, mas o ffmpeg gerou um AVI com apenas 1 quadro. Note que eu também usei "cinza" para a entrada pix_fmt .

Você tem um truque para fazer isso ou é um bug do ffmpeg?

ffmpeg -s 1920x1080 -pix_fmt pal8 -i YFrames_stub_1920x1080.y -c:v rawvideo -pix_fmt yuv420p YFrames_stub_1920x1080_Y.avi
ffmpeg version N-58949-g0e575c2 Copyright (c) 2000-2013 the FFmpeg developers
  built on Dec  9 2013 22:06:49 with gcc 4.8.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib
--enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray
--enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 58.100 / 52. 58.100
  libavcodec     55. 45.100 / 55. 45.100
  libavformat    55. 22.100 / 55. 22.100
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     3. 92.100 /  3. 92.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Input #0, image2, from 'YFrames_stub_1920x1080.y':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo, pal8, 1920x1080, 25 tbr, 25 tbn, 25 tbc
File 'YFrames_stub_1920x1080_Y.avi' already exists. Overwrite ? [y/N] y
Output #0, avi, to 'YFrames_stub_1920x1080_Y.avi':
  Metadata:
    ISFT            : Lavf55.22.100
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1920x1080, q=2-31, 200 kb/s, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo -> rawvideo)
Press [q] to stop, [?] for help
frame=    1 fps=0.0 q=0.0 Lsize=    3043kB time=00:00:00.04 bitrate=623221.2kbits/s
video:3038kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.183449%
    
por alexbuisson 27.12.2013 / 11:35

1 resposta

1

Depois de algum experimento sobre esse assunto, descobri onde estava meu erro! Na linha de comando eu usei:

ffmpeg -s 1920x1080 -pix_fmt pal8 -i YFrames_1920x1080.y -c:v rawvideo -pix_fmt yuv420p out.avi

há alguns parâmetros ausentes, mas o mais importante foi -f rawvideo . Se eu adicioná-lo no início do cmd:

ffmpeg -f rawvideo -pix_fmt pal8 -s:v 1920x1080 -i YFrames_1920x1080.y -c:v rawvideo -pix_fmt yuv420p out.avi

Podemos usar os dois pix_fmt gray ou pal8.

    
por 10.01.2014 / 11:15