LINUX.ORG.RU

ffmpeg

 , ,


1

3

Хочу качественный скринкаст. Нарыл в гуглах такое:

ffmpeg -f x11grab -r 25 -s 1600x900 -i :0.0+0,24 -vcodec libx264 -vpre lossless_ultrafast -threads 0 video.mkv

В аутпут кидает такое:

ffmpeg version 2.7.1 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.9.2 (Gentoo 4.9.2 p1.5, pie-0.6.2)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --optflags=' ' --disable-static --enable-avfilter --enable-avresample --disable-stripping --disable-indev=v4l2 --disable-outdev=v4l2 --disable-indev=alsa --disable-indev=oss --disable-indev=jack --disable-outdev=alsa --disable-outdev=oss --disable-outdev=sdl --enable-bzlib --enable-runtime-cpudetect --disable-debug --disable-doc --disable-gnutls --enable-gpl --enable-hardcoded-tables --enable-iconv --disable-lzma --enable-network --disable-openssl --enable-postproc --disable-libsmbclient --disable-ffplay --disable-vaapi --enable-vdpau --enable-xlib --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --enable-zlib --disable-libcdio --disable-libiec61883 --disable-libdc1394 --disable-libcaca --disable-openal --disable-opengl --disable-libv4l2 --disable-libpulse --disable-libopencore-amrwb --disable-libopencore-amrnb --disable-libfdk-aac --disable-libopenjpeg --disable-libbluray --disable-libcelt --disable-libgme --disable-libgsm --disable-libmodplug --disable-libopus --disable-libquvi --disable-librtmp --disable-libssh --disable-libschroedinger --disable-libspeex --disable-libvorbis --disable-libvpx --disable-libzvbi --disable-libbs2b --disable-libflite --disable-frei0r --disable-libfribidi --disable-fontconfig --disable-ladspa --disable-libass --disable-libfreetype --disable-libsoxr --enable-pthreads --disable-libvo-aacenc --disable-libvo-amrwbenc --disable-libmp3lame --disable-libaacplus --disable-libfaac --enable-libtheora --disable-libtwolame --disable-libwavpack --disable-libwebp --enable-libx264 --disable-libx265 --disable-libxvid --enable-x11grab --disable-amd3dnow --disable-amd3dnowext --disable-avx --disable-avx2 --disable-fma3 --disable-fma4 --disable-xop --cpu=host
  libavutil      54. 27.100 / 54. 27.100
  libavcodec     56. 41.100 / 56. 41.100
  libavformat    56. 36.100 / 56. 36.100
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 16.101 /  5. 16.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.100 /  1.  2.100
  libpostproc    53.  3.100 / 53.  3.100
[x11grab @ 0x85e0b0] device: :0.0+0,24 -> display: :0.0 x: 0 y: 24 width: 1600 height: 900
[x11grab @ 0x85e0b0] shared memory extension found
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  130 (MIT-SHM)
  Minor opcode of failed request:  4 (X_ShmGetImage)
  Serial number of failed request:  15
  Current serial number in output stream:  15

Сам ffmpeg собран так:

media-video/ffmpeg-2.7.1:0/54.56.56::gentoo  USE="X bzip2 cpudetection encode gpl hardcoded-tables iconv network postproc theora threads vdpau x264 zlib -aac -aacplus -alsa (-altivec) -amr -amrenc (-armv5te) (-armv6) (-armv6t2) (-armvfp) -bluray -bs2b -cdio -celt -debug -doc -examples -faac -fdk -flite -fontconfig -frei0r -fribidi -gme -gnutls -gsm -iec61883 -ieee1394 -jack -jpeg2k -ladspa -libass -libcaca -libsoxr -libv4l -lzma (-mipsdspr1) (-mipsdspr2) (-mipsfpu) -modplug -mp3 (-neon) -openal -opengl -openssl -opus -oss -pic -pulseaudio -quvi -rtmp -samba -schroedinger -sdl -speex -ssh -static-libs {-test} -truetype -twolame -v4l -vaapi -vorbis -vpx -wavpack -webp -x265 -xcb -xvid -zvbi" CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 sse4_1 sse4_2 ssse3 -3dnow -3dnowext -avx -avx2 -fma3 -fma4 -xop" FFTOOLS="aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart trasher"

Захват аудио пока не требуется.


поменял

-i :0.0+0,24
на
-i :0.0
и пошло, но не хочет воспринимать ни одной преднастройки для кодека x264, то есть при -vpre с любым аргументом пишет что неправельный пресет. Ни lossless_ultrafast, ни ultrafast, никакие вообще не работают. Хотя x264 --help показывает что такие преднастройки есть. Что делать?

vux
() автор топика
Ответ на: комментарий от vux

Всё, работает. Вместо -vpre нужно теперь -preset

vux
() автор топика

Вот еще интересует сколько потоков нужно указывать (-threads) если я пишу например из OpenGL-ного окна?

vux
() автор топика
Ответ на: комментарий от xorik

Спасибо, я знаю. Сейчас с командной строки пишет более чем )

vux
() автор топика
14 января 2016 г.

Народ, подскажите, что за USE надо указать, чтобы не было --disable-libv4l2? В юзах ffmpeg'а не заметил флага v4l2 (как у mplayer'а), выставил флаг v4l, но, похоже, он только для старого v4l, а для v4l2 не годится ☹

anonymous
()
Ответ на: комментарий от anonymous

Открыл. Нет там ключей v4l2. equery uses ffmpeg вот что показывает:

...
 - - twolame               : Enables MP2 encoding via media-sound/twolame as an alternative to the internal encoder.
 + - v4l                   : Enable support for video4linux (using linux-headers or userspace libv4l libraries)
 + + vorbis                : Add support for the OggVorbis audio codec
И на стадии configure вылезает --disable-libv4l2, из-за чего я на своей «малинке» не могу видеокамеру транслировать в веб-морду!

anonymous
()
Ответ на: комментарий от anonymous

Эдик, ты какой-то тугой.

# Options to use as use_enable in the foo[:bar] form.
# This will feed configure with $(use_enable foo bar)
# or $(use_enable foo foo) if no :bar is set.
# foo is added to IUSE.
FFMPEG_FLAG_MAP=(
...
# indevs
libv4l:libv4l2 ...

anonymous
()
Ответ на: комментарий от anonymous

Фигасе! Это что, у меня такой особый стиль общения, что меня сразу детектируют анонимусы?

Ой-вей...

libv4l:libv4l2

Я в описании прочитал, что это тупо замена прямых ядреных вызовов вызовами через библиотеку. Когда в предыдущий раз этот ключ указал, emerge пытался поставить устаревший и нафиг не нужный libv4l.

Ну да ладно, сейчас воткнул флешку в «малинку», пока разбираюсь с ssh: не хочет иксы перенаправлять, собака! Хоть в конфиге все правильно.

anonymous
()
Ответ на: комментарий от anonymous

В общем, с юзом v4l оно правильно собралось. Странно, что не v4l2. Как-то некошерно.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.