Transkodowałbym plik wideo GRAY lub YUV400 na AVI (YUV420P).
Mój plik wejściowy to tylko 1920 x 1080 Y, jego rozmiar to 22809600 = & gt; 11 ramka.
Użyłem następującej linii poleceń, ale ffmpeg generuje AVI z tylko 1 ramką. Zauważ, że użyłem również „szarego” dla wejścia pix_fmt
.
Czy masz sztuczkę, aby to zrobić, czy jest to błąd 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%
video
ffmpeg
video-conversion
alexbuisson
źródło
źródło
-loop 1
przed-i
. Nie mogę nic powiedzieć o formacie .y - nigdy go nie spotkałem, ale ffmpeg mówi, że to obraz, (jednak strumień 0 pokazuje surowy film), więc myślę, że potrzebujesz-loop 1
parametr. Ustaw także czas trwania za pomocą-t xx
gdzie xx to żądany czas trwania.Odpowiedzi:
Po pewnym eksperymencie na ten temat znalazłem, gdzie był mój błąd! W wierszu poleceń, którego użyłem:
brakuje niektórych parametrów, ale ważniejsze było
-f rawvideo
. Jeśli dodam go na początku cmd:Możemy użyć obu
pix_fmt
szary lub pal8.źródło
-f rawvideo
jest zawsze potrzebne podczas czytania, no, surowego wideo. W przeciwnym razie odgadnie kontener i dlatego nie akceptuje wszystkich rodzajów opcji. W twoim przypadku błędnie użył demuxera image2.