Subversion Repositories pentevo

Rev

Rev 783 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

╟ряшё№ тшфхю т Unreal Speccy emulator (psb)
-------------------------------------

╟ряшё№ тшфхю Ёхрышчютрэр ё яюью∙№■ єЄшышЄ√ ffmpeg. ╥ръшь юсЁрчюь, тё╕, ўЄю
єьххЄ ffmpeg - тёх фюёЄєяэю фы  шёяюы№чютрэш  ё Unreal Speccy.


╤юфхЁцрэшх:

* ╬ёэютэ√х тючьюцэюёЄш
* ╬ёэют√ ЁрсюЄ√ ё ffmpeg
* ═рёЄЁющър ¤ьєы ЄюЁр
* ╧рЁрьхЄЁ√ фы  чряшёш: эрсюЁ png/bmp
* ╧рЁрьхЄЁ√ фы  чряшёш: h264/mp3
* ╧рЁрьхЄЁ√ фы  чряшёш: DVD
* ╬эырщэ-ЄЁрэёы Ўш  тшфхю т шэЄхЁэхЄ
* ═рыюцхэшх чтєър ьшъЁюЇюэр
* ├фх ёърўрЄ№ ffmpeg?
* ╧юыхчэ√х ёё√ыъш яю ffmpeg


╬ёэютэ√х тючьюцэюёЄш
--------------------

* ╟ряшё№ тшфхю т Їрщы. ╧юффхЁцштр■Єё  Ёрчышўэ√х ъюфхъш (xvid/h264/mpeg2/bmp/png/
  wav/mp3/... - тёх юэш тёЄЁюхэ√ т ffmpeg, фюяюыэшЄхы№эю єёЄрэртыштрЄ№ эх
  эєцэю), ъюэЄхщэхЁ√ (avi/flv/mpg/mkv);
* ╧Ёшьхэхэшх Ёрчышўэ√ї Їшы№ЄЁют яхЁхф ёцрЄшхь (эряЁшьхЁ, ¤Єю яючтюы хЄ эр їюфє
  чряшё√трЄ№ тшфхю т ЇюЁьрЄх, яЁшуюфэюь фы  шёяюы№чютрэш  яЁш чряшёш DVD -
  25 fps interlaced);
* ╬ёє∙хёЄтыхэшх юэырщэ тх∙рэш  т шэЄхЁэхЄх (ё тючьюцэюёЄ№■ эрыюцхэш  чтєър
  ьшъЁюЇюэр яютхЁї чтєър ¤ьєы ЄюЁр);
* └тЄюьрЄшўхёър  яюффхЁцър ьэюую фхЁэ√ї яЁюЎхёёюЁют фы  ъюфшЁютрэш  тшфхю.


╬ёэют√ ЁрсюЄ√ ё ffmpeg
----------------------

╚чэрўры№эю ffmpeg яЁхфэрчэрўхэ фы  ъюэтхЁЄрЎшш/ёцрЄш  тшфхю. ╨рсюЄр ё ffmpeg
тхфхЄё  шч ъюьрэфэющ ёЄЁюъш. ╧Ёш ¤Єюь, чрфр■Єё  шёЄюўэшъш ш яЁшхьэшъш фрээ√ї,
р Єръ цх юяЎшш, юяЁхфхы ■∙шх ЇюЁьрЄ√ фрээ√ї/їрЁръЄхЁшёЄшъш ёцрЄш . ╧ЁшьхЁ:

ffmpeg -i input.avi output.flv

┬ ¤Єюь ёыєўрх тшфхю шч input.avi яхЁхъюэтхЁЄшЁєхЄё  т output.flv (Єшя ъюэЄхщэхЁр
юяЁхфхы хЄё  ртЄюьрЄшўхёъш яю Ёрё°шЁхэш ь Їрщыют, эю эх тёхуфр, шэюуфр эєцэю хую
єърч√трЄ№  тэю, эряЁшьхЁ: -f flv).

┬ юс∙хь тшфх ярЁрьхЄЁ√ ъюьрэфэющ ёЄЁюъш шьх■Є Єръющ ЇюЁьрЄ:

ffmpeg [input1 options] -i input1 [input2 options] -i input2 ... [output1 options] output1 [output2 options] output2 ...

╩ы■ў -i чрфрхЄ шёЄюўэшъ фрээ√ї, яЁш ¤Єюь ─╬ ¤Єюую ъы■ўр фюыцэ√ с√Є№ чрфрэ√ тёх
юяЎшш фы  ¤Єюую шёЄюўэшър. ┬ёх, ўЄю єърчрэю яюёых -i, сєфхЄ ёўшЄрЄ№ё  юяЎш ьш
фы  ёыхфє■∙хую шёЄюўэшър/яЁшхьэшър.

╬яшёрэшх тёхї юяЎшщ ffmpeg ьюцэю эрщЄш т рЁїштх ё яЁюуЁрььющ шыш эр юЇшЎшры№эюь
ёрщЄх (ёё√ыър тэшчє).


═рёЄЁющър ¤ьєы ЄюЁр
-------------------

─ы  ЁрсюЄ√ ЇєэъЎшш ёюїЁрэхэш  тшфхю, т ini-Їрщых ¤ьєы ЄюЁр эхюсїюфшью эрёЄЁюшЄ№
ёыхфє■∙шх ярЁрьхЄЁ√:

ffmpeg.exec         яєЄ№ ш шь  єЄшышЄ√ ffmpeg, эряЁшьхЁ, ffmpeg.exe шыш
                    C:\ffmpeg\ffmpeg.exe, фю 256 срщЄ;
ffmpeg.newconsole   1 - юЄъЁ√трЄ№ фы  ffmpeg эютє■ ъюэёюы№;
                    0 - шёяюы№чютрЄ№ ъюэёюы№ ¤ьєы ЄюЁр фы  т√тюфр ffmpeg
                    (яюыхчэю фы  юЄырфъш ярЁрьхЄЁют);
ffmpeg.parm         ярЁрьхЄЁ√ т√їюфэюую Їрщыр, фю 1024 срщЄ;
ffmpeg.vout         шь  т√їюфэюую Їрщыр (ьюцэю шёяюы№чютрЄ№ ёшьтюы "#" фы 
                    яюфёЄрэютъш яюЁ фъютюую эюьхЁр тшфхю, эряЁшьхЁ, video#.avi),
                    фю 512 срщЄ.

─ы  чряшёш тшфхю Unreal Speccy чряєёърхЄ ffmpeg т ёыхфє■∙хь ЇюЁьрЄх:

"%exec%" -i %pipename% %parm% -y %vout%

%exec%      - ярЁрьхЄЁ ffmpeg.exec шч ini-Їрщыр;
%pipename%  - шь  ърэрыр (pipe), ўхЁхч ъюЄюЁ√щ яхЁхфрхЄё  эхёцрЄюх тшфхю -
              эхфюёЄєяэю фы  шчьхэхэш ;
%parm%      - ярЁрьхЄЁ ffmpeg.parm шч ini-Їрщыр;
%vout%      - ярЁрьхЄЁ ffmpeg.vout шч ini-Їрщыр.

╟ряшё№ тшфхю эрўшэрхЄё  яЁш яхЁтюь эрцрЄшш CTRL+F8 (хёыш ¤Єю эх шчьхэхэю т
ini-Їрщых) ш юёЄрэртыштрхЄё  яЁш тЄюЁюь. ═р ёырс√ї ъюья№■ЄхЁрї (фрцх 2ї- фхЁэ√ї)
тючьюцэю ЄюЁьюцхэшх ¤ьєы ЄюЁр яЁш чряшёш - ¤Єю эюЁьры№эю, эр ърўхёЄтю тшфхю ¤Єю
эх тыш хЄ.


╧рЁрьхЄЁ√ фы  чряшёш: эрсюЁ png/bmp
-----------------------------------

─ы  чряшёш ърЁЄшэюъ фюёЄрЄюўэю єърчрЄ№ Ёрё°шЁхэшх .png/.bmp є т√їюфэюую Їрщыр.

ffmpeg.parm=-r 25
ffmpeg.vout=video#_%06d.png

╟фхё№ "-r 25" чрфрхЄ ўрёЄюЄє ърфЁют т√їюфэюую тшфхю - 25 ъ/ёхъ, Є.х., хёыш
¤ьєы ЄюЁ сєфхЄ фртрЄ№ 50 ъ/ёхъ, Єю ърцф√щ тЄюЁющ ърфЁ сєфхЄ юЄсЁю°хэ. ┼ёыш эх
чрфртрЄ№ эшъръшї ярЁрьхЄЁют, сєфхЄ ёюїЁрэ Є№ё  50 ъ/ёхъ.

"video#_%06d.png" ЁрчтхЁэхЄё  т "video0_000000.png", "video0_000001.png",
"video0_000002.png" ш Є.ф. фы  яхЁтюую тшфхю, "video1_000000.png",
"video1_000001.png", "video1_000002.png" ш Є.ф. фы  тЄюЁюую тшфхю.


╧рЁрьхЄЁ√ фы  чряшёш: h264/mp3
------------------------------

H264 - ёЄрэфрЁЄ ёцрЄш  тшфхю, яЁхфэрчэрўхээ√щ фы  фюёЄшцхэш  т√ёюъющ ёЄхяхэш
ёцрЄш  тшфхю яюЄюър яЁш ёюїЁрэхэшш т√ёюъюую ърўхёЄтр. ┬ ffmpeg фы  ЁрсюЄ√ ё ¤Єшь
ЇюЁьрЄюь шёяюы№чєхЄё  ъюфхъ libx264.

─ы  ёцрЄш  чтєър т mp3 шёяюы№чєхЄё  ъюфхъ libmp3lame.

┬юЄ юёэютэ√х ярЁрьхЄЁ√ (фы  шёяюы№чютрэш  т ffmpeg.parm):

-c:a copy               ъюяшЁютрэшх рєфшю яюЄюър схч шчьхэхэш  ЇюЁьрЄр
                        (т эр°хь ёыєўрх - схч ёцрЄш , wav)

-c:a libmp3lame         ёцрЄшх чтєър т mp3
  -b:a 320k             ё сшЄЁхщЄюь 320

-af volume=3.0          єтхышўхэшх уЁюьъюёЄш чтєър т 3 Ёрчр (яюыхчэю,
                        Є.ъ. т ¤ьєы ЄюЁх чтєъ Єшїшщ)

-c:v copy               ъюяшЁютрэшх тшфхю яюЄюър схч шчьхэхэш  ЇюЁьрЄр
                        (т эр°хь ёыєўрх - схч ёцрЄш , rgb24)

-c:v libx264            ёцрЄшх тшфхю т h264,
  -pix_fmt yuvj420p     ЇюЁьрЄ яшъёхыхщ; схч ¤Єющ юяЎшш эх ЁрсюЄрхЄ :)
  -preset:v veryfast    Єшя ёцрЄш  (тыш хЄ эр ёъюЁюёЄ№ ш ёЄхяхэ№ ёцрЄш )
  -profile:v baseline   Єшя яЁюЇшы  (ёь. юяшёрэшх h264)
  -crf 10               ърўхёЄтю ёцрЄш  0-51 (0 - схч яюЄхЁ№, 51 - їєф°хх)

-ss 00:00:00.500        яЁюяєёЄшЄ№ яхЁт√х 500 ьё тшфхю (эх чряшё√трЄ№ ърфЁ√
                        ё эрфяшё№■ "start saving video")

-an                     шёъы■ўшЄ№ рєфшю

-vn                     шёъы■ўшЄ№ тшфхю

─ы  ёючфрэш  ётюшї эрёЄЁюхъ ъюфшЁютрэш  тшфхю, фюёЄрЄюўэю яЁюёЄю "ёъыхшЄ№"
т√°хєърчрээ√х юяЎшш тьхёЄх, Ёрчфхы   шї яЁюсхырьш.

═ряЁшьхЁ, ь√ їюЄшь яюыєўшЄ№ эхёцрЄ√щ чтєъ ш ёцрЄюх тшфхю схч яюЄхЁ№:

ffmpeg.parm=-c:a copy -af volume=3.0  -c:v libx264 -pix_fmt yuvj420p -preset:v veryfast -crf 0 -ss 00:00:00.500
ffmpeg.vout=video#.avi

╚ыш ёцрЄ√щ чтєъ ш сюыхх ёцрЄюх тшфхю:

ffmpeg.parm=-c:a libmp3lame -b:a 320k -af volume=3.0  -c:v libx264 -pix_fmt yuvj420p -preset:v veryfast -profile:v baseline -crf 10 -ss 00:00:00.500
ffmpeg.vout=video#.avi

─ы  чряшёш тшфхю т h264 эрёЄю Єхы№эю ЁхъюьхэфєхЄё  ёЄртшЄ№ Ёхцшь юЄюсЁрцхэш 
double size (2x) т ¤ьєы ЄюЁх (шэрўх сєфєЄ яюЄхЁш т ЎтхЄх).

╧Ёш чряшёш тшфхю ё ўрёЄюЄющ 25 ърфЁют/ёхъ (эряЁшьхЁ, YouTube яЁшэєфшЄхы№эю
яхЁхцшьрхЄ т Єръє■ ўрёЄюЄє), ърцф√щ тЄюЁющ ърфЁ сєфхЄ т√ярфрЄ№. ─ы  ¤ЇЇхъЄют
Єшяр gigascreen ¤Єю ъЁшЄшўэю. ─ы  шёяЁртыхэш  ёшЄєрЎшш яЁш чряшёш Єръшї тшфхю
эрёЄю Єхы№эю ЁхъюьхэфєхЄё  т эрёЄЁющърї ¤ьєы ЄюЁр тъы■ўрЄ№ Ёхцшь Noflic
(тъырфър Video). ─р ш фрцх эр тшфхю т 50 ърфЁют/ёхъ Noflic т√уы фшЄ єсхфшЄхы№эхх
эр gigascreen-¤ЇЇхъЄрї.


╧рЁрьхЄЁ√ фы  чряшёш: DVD
-------------------------

┬шфхю фы  PAL-DVD фюыцэю ёюфхЁцрЄ№ 25 ърфЁют/ёхъ, ърцф√щ ърфЁ фюыцхэ ёюёЄю Є№ шч
яюыхщ (яюыєърфЁют). ╟рфрўр - єяръют√трЄ№ ярЁє ёюёхфэшї ¤ъЁрэют ¤ьєы ЄюЁр т юфшэ
interlaced-ърфЁ. ─ы  ¤Єюую т ffmpeg хёЄ№ Їшы№ЄЁ tinterlace. ╥ръцх т ffmpeg хёЄ№
юяЎш  -target pal-dvd, ъюЄюЁр  ёЁрчє єёЄрэртыштрхЄ эхюсїюфшь√х ъюфхъш, ЁрчьхЁ
ърЁЄшэъш (720x576 яшъёхыхщ) фы  ЇюЁьрЄр DVD.

─ы  ёюсы■фхэш  юЁшушэры№э√ї яЁюяюЁЎшщ ЁхъюьхэфєхЄё  фхырЄ№ юсЁхчрэшх/фюяюыэхэшх
шёїюфэюую ърфЁр фю ЁрчЁх°хэш  720x576. ▌Єю фхырхЄё  Їшы№ЄЁрьш crop/pad
ёююЄтхЄёЄтхээю.

┬юЄ яЁшьхЁ юяЎшщ фы  чряшёш DVD (шёїюфэр  ърЁЄшэър т ¤ьєы ЄюЁх фюыцэр с√Є№
сюы№°х 720x576 яшъёхыхщ - double size (2x) + full border, шэрўх сєфхЄ ю°шсър):

ffmpeg.parm=-af volume=3.000000 -bf 2 -vf "crop=720:576,tinterlace=mode=interlacex2" -aspect 4:3 -target pal-dvd -r 25 -b:v 2800k -ss 00:00:00.500
ffmpeg.vout=video#.mpg

┼∙х яЁшьхЁ (шёїюфэр  ърЁЄшэър ьхэ№°х 720x576 яшъёхыхщ - фюяюыэ хЄё  фю ¤Єюую
ЁрчЁх°хэш  ўхЁэющ Ёрьъющ):

ffmpeg.parm=-af volume=3.000000 -bf 2 -vf "pad=720:576:(ow-iw)/2:(oh-ih)/2,tinterlace=mode=interlacex2" -aspect 4:3 -target pal-dvd -r 25 -b:v 2800k -ss 00:00:00.500
ffmpeg.vout=video#.mpg

╧Ёш шёяюы№чютрэшш ¤Єшї ярЁрьхЄЁют ъюфшЁютрэш , т ¤ьєы ЄюЁх эхюсїюфшью яюёЄртшЄ№
Ёхцшь юЄюсЁрцхэш  double size (2x) фы  ъюЁЁхъЄэющ ЁрсюЄ√ Їшы№ЄЁр interlacex2.

╬яЎш  -b:v 2800k чрфрхЄ сшЄЁхщЄ тшфхю (яюфсшЁрхЄё  эр уырч).


╬эырщэ-ЄЁрэёы Ўш  тшфхю т шэЄхЁэхЄ
----------------------------------

┼ёЄ№ эхёъюы№ъю яєсышўэ√ї ёхЁтхЁют, яючтюы ■∙шї юЁурэшчют√трЄ№ юэырщэ ЄЁрэёы Ўшш
т шэЄхЁэхЄ, эряЁшьхЁ: justin.tv, twitch.tv, own3d.tv. ▌Єш ёхЁтхЁр ьюуєЄ
яЁшэшьрЄ№ тшфхю яюЄюъ яю яЁюЄюъюыє rtmp ш яюърч√трЄ№ хую ўхЁхч тхс-ёрщЄ.
╩Ёюьх Єюую, тёх яхЁхфрээюх тшфхю чряшё√трхЄё  эр ърэрых ш хую ьюцэю яюёьюЄЁхЄ№
яючцх.

─ы  Єюую, ўЄюс√ юЁурэшчютрЄ№ ЄЁрэёы Ўш■, эхюсїюфшью чрЁхушёЄЁшЁютрЄ№ё  эр
ёхЁтшёх ш яюыєўшЄ№ тр° ёюсёЄтхээ√щ шфхэЄшЇшърЄюЁ ЄЁрэёы Ўшш - ёЄЁюъє Єшяр
live_74829844_mfrdpoeg034tn03gn03ring3f0rngc. ╟рЄхь ¤ЄюЄ шфхэЄшЇшърЄюЁ эєцэю
тёЄртшЄ№ т рфЁхё ЄЁрэёы Ўшш т ярЁрьхЄЁх ffmpeg.vout.

╧юёых Єюую, ъръ эрёЄЁющъш уюЄют√, чряєёърхь ¤ьєы ЄюЁ, чряєёърхь чряшё№ тшфхю -
ЄЁрэёы Ўш  эрўрырё№. ╟ЁшЄхыш ьюуєЄ тшфхЄ№ ¤ъЁрэ ¤ьєы ЄюЁр эр тр°хщ ёЄЁрэшўъх.

╧ЁшьхЁ фы  justin.tv (шфхэЄшЇшърЄюЁ яюфёЄртшЄ№ ётющ):

ffmpeg.parm=-af volume=3.000000 -r 10 -ss 00:00:00.500 -f flv -tune zerolatency
ffmpeg.vout=rtmp://live.justin.tv/app/live_74829844_mfrdpoeg034tn03gn03ring3f0rngc

╧ЁшьхЁ фы  own3d.tv (шфхэЄшЇшърЄюЁ яюфёЄртшЄ№ ётющ):

ffmpeg.parm=-af volume=3.000000 -r 25 -ss 00:00:00.500 -c:v libx264 -pix_fmt yuvj420p -preset:v veryfast -profile:v baseline -crf 10 -f flv -tune zerolatency
ffmpeg.vout=rtmp://live.eu.own3d.tv/live/b8493921_949585_kjhb5632l3l1

╧ЁшьхЁ фы  twitch.tv (шфхэЄшЇшърЄюЁ яюфёЄртшЄ№ ётющ):

ffmpeg.parm=-af volume=3.000000 -r 30 -ss 00:00:00.500 -c:v libx264 -pix_fmt yuvj420p -preset:v veryfast -profile:v baseline -crf 35 -f flv -tune zerolatency
ffmpeg.vout=rtmp://live.justin.tv/app/live_sub_5b8ed4fae83fe83e920227337beab7e73b7a3ba3


═рыюцхэшх чтєър ьшъЁюЇюэр (ьюцхЄ ЁрсюЄрЄ№ эхъюЁЁхъЄэю)
------------------------------------------------------

ffmpeg єьххЄ чрїтрЄ√трЄ№ чтєъ ёю чтєъютющ ърЁЄ√ ш ърЁЄшэъє ё ¤ъЁрэр/ърьхЁ.
─ы  т√тюфр тёхї шьх■∙шїё  т ёшёЄхьх єёЄЁющёЄт эхюсїюфшью т√яюыэшЄ№ ъюьрэфє:

ffmpeg -list_devices true -f dshow -i dummy

╩юьрэфр т√тхфхЄ яЁшьхЁэю ёыхфє■∙хх:

ffmpeg version N-48785-g2ea3f37 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jan 12 2013 20:40:36 with gcc 4.7.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-
  avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --
  enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable
  -libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-
  amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-
  libschroedinger --enable-libspeex --enable-libtheora --enable-libtwolame --
  enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx 
  --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib --enable-
  filter=frei0r
  libavutil      52. 14.100 / 52. 14.100
  libavcodec     54. 86.100 / 54. 86.100
  libavformat    54. 59.107 / 54. 59.107
  libavdevice    54.  3.102 / 54.  3.102
  libavfilter     3. 32.100 /  3. 32.100
  libswscale      2.  1.103 /  2.  1.103
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
[dshow @ 02444020] DirectShow video devices
[dshow @ 02444020] Could not enumerate video devices.
[dshow @ 02444020] DirectShow audio devices
[dshow @ 02444020]  "Realtek AC97 Audio"
dummy: Immediate exit requested

╟фхё№ ь√ тшфшь, ўЄю фюёЄєяэю чтєъютюх єёЄЁющёЄтю "Realtek AC97 Audio". ─ы  
ьшъ°шЁютрэш  чтєър ьшъЁюЇюэр ш чтєър шч ¤ьєы ЄюЁр, эєцэю фюсртшЄ№ шёЄюўэшъ чтєър

    -f dshow -i audio="Realtek AC97 Audio"

ш шёяюы№чютрЄ№ юяЎш■ 

    -filter_complex amix=inputs=2:duration=shortest

фы  ьшъ°шЁютрэш  фтєї чтєъют√ї яюЄюъют т юфшэ (т ьшъ°хЁх чряшёш Windows фюыцхэ
с√Є№ т√сЁрэ ьшъЁюЇюэ).

ffmpeg.parm=-f dshow -i audio="Realtek AC97 Audio" -r 10 -ss 00:00:00.500 -f flv -tune zerolatency
ffmpeg.vout=rtmp://live.justin.tv/app/live_74829844_mfrdpoeg034tn03gn03ring3f0rngc



├фх ёърўрЄ№ ffmpeg?
-------------------

* ╬ЇшЎшры№э√щ ёрщЄ: http://ffmpeg.org/
* ╤сюЁър яюф windows: http://ffmpeg.zeranoe.com/builds/


╧юыхчэ√х ёё√ыъш яю ffmpeg
-------------------------

* http://ffmpeg.org/documentation.html - фюъєьхэЄрЎш 
* http://ffmpeg.org/trac/ffmpeg/wiki - ъєўр яЁшьхЁют шёяюы№чютрэш ,
  ЁєъютюфёЄтр яю ёцрЄш ь, ЄЁрэёы Ўшш ш Є.я.