ffmpeg на fb0 из ошибки Nexus Galaxy: «не удалось получить имя файла фрейма № 2» - PullRequest
3 голосов
/ 14 февраля 2012

Я использую ffmpeg для конвертации файлов fb0 с Android и создания скриншотов.Почему-то это не работает с Nexus Galaxy.

Я получаю эту ошибку:

[image2 @ 0000000001E0E350] Could not get frame filename number 2 from pattern '
image.png'
av_interleaved_write_frame(): Invalid argument

Вот процесс:

    C:\dev\scripts>adb pull /dev/graphics/fb0
3292 KB/s (16777216 bytes in 4.976s)

C:\dev\scripts>ffmpeg -vframes 1 -vcodec rawvideo -f rawvideo -pix
_fmt rgb32 -s 720x1080 -i fb0 -f image2 -vcodec png image.png
ffmpeg version N-36635-gceb0dd9 Copyright (c) 2000-2012 the FFmpeg developers
  built on Jan  9 2012 17:45:55 with gcc 4.6.2
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-ru
ntime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libope
ncore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --en
able-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger -
-enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwben
c --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-
libxvid --enable-zlib
  libavutil      51. 34.100 / 51. 34.100
  libavcodec     53. 54.100 / 53. 54.100
  libavformat    53. 29.100 / 53. 29.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 58.100 /  2. 58.100
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0.  6.100 /  0.  6.100
  libpostproc    51.  2.100 / 51.  2.100
[rawvideo @ 000000000037D5A0] Estimating duration from bitrate, this may be inac
curate
Input #0, rawvideo, from 'fb0':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo (BGRA / 0x41524742), bgra, 720x1080, 25 tbr, 25
 tbn, 25 tbc
[buffer @ 000000000037D420] w:720 h:1080 pixfmt:bgra tb:1/1000000 sar:0/1 sws_pa
ram:
Output #0, image2, to 'image.png':
  Metadata:
    encoder         : Lavf53.29.100
    Stream #0:0: Video: png, bgra, 720x1080, q=2-31, 200 kb/s, 90k tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo -> png)
Press [q] to stop, [?] for help
[image2 @ 0000000001E0E350] Could not get frame filename number 2 from pattern '
image.png'
av_interleaved_write_frame(): Invalid argument

1 Ответ

9 голосов
/ 03 марта 2012

Если вы конвертируете rawvideo в формат изображения, может быть несколько изображений. Ffmpeg просто предупреждает вас, что имя выходного файла не соответствует формату, необходимому для вывода нескольких файлов изображений.

Попробуйте вместо этого:

ffmpeg -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb32 -s 720x1080 -i fb0 -f image2 -vcodec png image_% 05d.png

Это должно привести к созданию нескольких файлов изображений, т.е.

image_00001.png image_00002.png image_00003.png ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...