#
在mingw32環境下 FFmpeg中 ./configure --enable-libutvideo 是出現 ERROR: utvideo not found.
網上查了不少資料,有各種方法,修改代碼等等,我認為都不是正解.首先要清楚的是utvideo的開發環境.
編譯utvideo需要 vs2005+
Microsoft SDKs 6.1.所以這兩個都要安裝.這兩個都是1G以上的安裝包.
問題原因兩種 一是沒有正確編譯libutvideo.a 還有/MinGW/include/utvideo/Codec.h有問題
第一正確編譯libutvideo.a,這個需要
cross_compile交叉編譯, mingw32 默認安裝就沒有交叉編譯環境
需要安裝
w32api-3.14-3-msys-1.0.12-dev.tar.lzma,下載地址
http://sourceforge.net/projects/mingw/files/MSYS/msysdev/w32api/
下載之后把include lib目錄下的文件拷貝到/MinGW/下
還有utvideo-xx.x.x 原代碼文件中 GNUmakefile 中
CROSS_PREFIX=
#WINSDK_ROOT="/c/Program Files/Microsoft SDKs/Windows/v6.1"
#CPPFLAGS=-I/usr/include/w32api -I$(WINSDK_ROOT)/Include
修改成
CROSS_PREFIX=
ming32-
WINSDK_ROOT="/c/Program Files/Microsoft SDKs/Windows/v6.1"
CPPFLAGS=-I/
mingw/include/w32api -I$(WINSDK_ROOT)/Include
之后make / make install就生成libutvideo.a
第二正確編譯utvideo之后在FFmpeg中./configure --enable-libutvideo 還出現ERROR: utvideo not found.
include/utvideo/Codec.h:31:24: error: 'INT_PTR' has not been declared
這是\MinGW\include\utvideo\Codec.h文件中沒有定義INT_PTR
在\MinGW\include\utvideo\
Codec.h文件中添加
windows.h 就可以
#pragma once
#include <windows.h> //<-----------
openjpeg-1.5.0
check_func opj_version -lopenjpeg
check_ld cc -lopenjpeg
check_cc
BEGIN /tmp/ffconf.FjPhvrcd.c
1 extern int opj_version();
2 int main(void){ opj_version(); }
END /tmp/ffconf.FjPhvrcd.c
gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -U__STRICT_ANSI__ -I/mingw/include \
-std=c99 -fno-common -fomit-frame-pointer -mms-bitfields -IC:/MinGW/include -IC:/MinGW/include/fribidi \
-IC:/MinGW/include/freetype2 -IC:/MinGW/include/glib-2.0 -IC:/MinGW/lib/glib-2.0/include \
-IC:/MinGW/include/freetype2 -IC:/MinGW/include -c -o /tmp/ffconf.sopDAXEw.o /tmp/ffconf.FjPhvrcd.c
gcc -L/mingw/lib -Wl,--as-needed -o /tmp/ffconf.auqRaaGu.exe /tmp/ffconf.sopDAXEw.o \
-lopenjpeg -lopencore-amrwb -lopencore-amrnb -lnut -lmp3lame -lgsm -LC:/MinGW/lib\
-lfreetype -lcelt0 -lcelt0 -LC:/MinGW/lib -lass -lavifil32 -lm -lz
-lpsapi -lshell32
D:/TEMP/ffconf.sopDAXEw.o:ffconf.FjPhvrcd.c:(.text+0xc): undefined reference to `_opj_version'
collect2.exe: error: ld returned 1 exit status
ERROR: libopenjpeg not found
需要libopenjpeg static編譯
./configure --prefix=/mingw --build=mingw32 --target=mingw32 --enable-static --disable-shared \
--includedir=/mingw/include --libdir=/mingw/lib
make CFLAGS="-DWIN32 -DOPJ_STATIC $CFLAGS"
make install-strip
需要正確安裝 libpng libpng不能static編譯.
libpng 需要默認編譯 我用的 [libpng-1.5.12]
./configure --prefix=/mingw
make
make install-strip
pkg-config --exists librtmp||echo no 顯示 no 說明pkg-config 沒有找到相應的 librtmp.pc
問題是librtmp自動生成的/MinGW/lib/pkgconfig/librtmp.pc 文件格式有問題
原文是
prefix=/mingw
exec_prefix=${prefix}
libdir=/mingw/lib
incdir=${prefix}/include
Name: librtmp
Description: RTMP implementation
Version: v2.4
Requires: libssl,libcrypto
URL: http://rtmpdump.mplayerhq.hu
Libs: -L${libdir} -L@OPENSSLLIB@ -lrtmp -lz -lssl -lcrypto
Libs.private: -lws2_32 -lwinmm -lgdi32
Cflags: -I${incdir} -I@OPENSSLINC@
修改成
prefix=/mingw
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: librtmp
Description: RTMP implementation
URL: http://rtmpdump.mplayerhq.hu
Version: v2.4
Requires.private:
Libs: -L${libdir} -L@OPENSSLLIB@ -lrtmp
Libs.private: -lws2_32 -lwinmm -lgdi32 -lm
Cflags: -I${includedir}
修改之后
pkg-config --exists librtmp||echo no 就不顯示 no
Git是一個分布式源代碼版本管理控制程序. Git 是一個由林納斯托瓦茲為了更好地管理
linux內核開發而創立的分布式版本控制/軟件配置管理軟件。
https://gitorious.org/ 注冊后要Add a new public SSH key 下面介紹key如何生成
STEP1
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
STEP2
Generating public/private rsa key pair.Enter
Enter file in which to save the key (/home/b/.ssh/id_rsa):Enter
Enter passphrase (empty for no passphrase):Enter
Enter same passphrase again:Enter
Your identification has been saved in /home/b/.ssh/id_rsa.
Your public key has been saved in /home/b/.ssh/id_rsa.pub.
The key fingerprint is:id_rsa.pub
______________________________
STEP1:下載編譯所需的文件包并安裝
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.安裝 svn-win32-1.6.6 下載源碼 在要下載的目錄中創建 svn-down-mplaye.bat 批處理文件.
http://subversion.tigris.org/files/documents/15/47848/Setup-Subversion-1.6.6.msi
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
2.下載MinGW-full版本,該版本中所需的編譯庫文件都有,如果喜歡最新的可以自己更新
http://cdnetworks-kr-1.dl.sourceforge.net/project/mplayer-ww/MinGW-full/MinGW-full-20101119.7z
解壓到C:根目錄下C:/MinGW/目錄下面,把MPlayer-ww源碼拷貝到/MinGW/home/下面
3.下載FFmpeg Windows builds 在Win-XP上必須要這個其他系統版本編譯時出錯
http://ffmpeg.zeranoe.com/builds/source/ffmpeg/ffmpeg-git-a366bea.tar.xz
下載之后解壓到mplayer-ww代碼目錄下的 ffmpeg/ 先編譯FFmpeg 不然編譯mplayer-ww時出錯
./configure --prefix=/usr/local/ffmpeg-ww \
--enable-shared --disable-static --enable-memalign-hack
make
make install
__________________________
STEP2: Configuring MPlayer
~~~~~~~~~~~~~~~~~~~~~~~~~~
不同的機器適當調整參數 寫個腳本文件方便修改
____________
1.static編譯
~~~~~~~~~~~~
# !/bin/sh
_gcc=no
test "$1" && _gcc="$1"
_config="configure \
--prefix="D:/MPlayer/static" \
--disable-mencoder \
--disable-menu \
--disable-gif \
--disable-tga \
--disable-pnm \
--disable-sdl \
--disable-caca \
--disable-ssse3 \
--disable-faac \
--disable-x264 \
--disable-xvid \
--disable-vidix \
--disable-toolame \
--disable-twolame \
--disable-md5sum \
--disable-vidix-pcidb \
--disable-libdirac-lavc \
--enable-gui \
--enable-static \
--enable-freetype \
--enable-runtime-cpudetection \
--extra-libs="-mwindows" "
if test $_gcc != no; then
_config+=" --cc=$_gcc "
fi
./$_config
____________
2.shared編譯
~~~~~~~~~~~~
# !/bin/sh
_gcc=no
test "$1" && _gcc="$1"
_config="
--prefix="D:/MPlayer/shared" \
--disable-mencoder \
--disable-tga \
--disable-pnm \
--disable-sdl \
--disable-caca \
--disable-ssse3 \
--disable-faac \
--disable-x264 \
--disable-xvid \
--disable-vidix \
--disable-toolame \
--disable-twolame \
--disable-md5sum \
--disable-vidix-pcidb \
--disable-libdirac-lavc \
--disable-ffmpeg_a \
--enable-freetype \
--enable-runtime-cpudetection \
--extra-cflags="-I/usr/local/ffmpeg-ww/include" \
--extra-ldflags="-L/usr/local/ffmpeg-ww/lib" \
--extra-libs-mplayer="-Wl,--enable-auto-import" \
--extra-libs="-mwindows" "
if test $_gcc != no; then
_config+=" --cc=$_gcc "
fi
./configure $_config
____________
3.debug 編譯
~~~~~~~~~~~~
# !/bin/sh
_gcc=no
test "$1" && _gcc="$1"
_config="configure \
--prefix="D:/MPlayer/debug" \
--disable-mencoder \
--disable-menu \
--disable-gif \
--disable-tga \
--disable-pnm \
--disable-sdl \
--disable-caca \
--disable-ssse3 \
--disable-faac \
--disable-x264 \
--disable-xvid \
--disable-vidix \
--disable-toolame \
--disable-twolame \
--disable-md5sum \
--disable-vidix-pcidb \
--disable-libdirac-lavc \
--enable-static \
--enable-freetype \
--enable-debug=3 \
--enable-runtime-cpudetection \
--extra-libs="-mwindows" "
if test $_gcc != no; then
_config+=" --cc=$_gcc "
fi
./$_config
_______________________________
STEP3: Compiling MPlayer & Play
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make #需要耐心等待 有可能出錯 原因通常是配置或者configue參數有問題
make install
mplayer [moviefile] #拷貝相應的DLL 都在/mingw/bin
主要2個部分,去掉提示購買窗口和水印部分。
在網上找Ultra Video to GIF Converter 1.2 破解版、序列號都沒有找到,就自己動手破解。
搞了好幾個小時終于搞定啦。這個工具的優點是比其他轉換工具圖像清晰并且文件大小很小,
目前我用過的轉換工具中最給力的。
1.DFM 中刪除 把下面的資源都用00來代替
01136BB0 06 54 54 69 6D 65 72 10 54 69 6D 65 TTimer Time
01136BC0 72 53 68 6F 77 42 75 79 50 61 67 65 07 4F 6E 54 rShowBuyPage OnT
01136BD0 69 6D 65 72 07 15 54 69 6D 65 72 53 68 6F 77 42 imer TimerShowB
01136BE0 75 79 50 61 67 65 54 69 6D 65 72 04 4C 65 66 74 uyPageTimer Left
01136BF0 03 48 02 03 54 6F 70 02 60 00 00 00 H Top `
2.程序退出時出現錯誤 60cce7 53 改成 C3
0060CCDC /. 53 PUSH EBX <--------C3 RETN
0060CCDD |. 56 PUSH ESI
0060CCDE |. 8BF0 MOV ESI,EAX
0060CCE0 |. A1 80FD6200 MOV EAX,DWORD PTR DS:[62FD80]
0060CCE5 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
0060CCE7 |. 80B8 F2010000 CMP BYTE PTR DS:[EAX+1F2],0
0060CCEE |. 75 25 JNE SHORT 0060CD15
0060CCF0 |. 8BCE MOV ECX,ESI
0060CCF2 |. B2 01 MOV DL,1
0060CCF4 |. A1 80406000 MOV EAX,DWORD PTR DS:[604080]
0060CCF9 |. E8 2E84F0FF CALL 0051512C
0060CCFE |. 8B15 80FD6200 MOV EDX,DWORD PTR DS:[62FD80]
0060CD04 |. 8902 MOV DWORD PTR DS:[EDX],EAX
0060CD06 |. A1 80FD6200 MOV EAX,DWORD PTR DS:[62FD80]
0060CD0B |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
0060CD0D |. 8B10 MOV EDX,DWORD PTR DS:[EAX]
0060CD0F |. FF92 20010000 CALL DWORD PTR DS:[EDX+120]
0060CD15 |> 8B9E A4030000 MOV EBX,DWORD PTR DS:[ESI+3A4]
0060CD1B |. 33D2 XOR EDX,EDX
0060CD1D |. 8BC3 MOV EAX,EBX
0060CD1F |. E8 20AEF4FF CALL 00557B44 ; [Video2GIF.00557B44
0060CD24 |. 33C0 XOR EAX,EAX
0060CD26 |. 8983 48050000 MOV DWORD PTR DS:[EBX+548],EAX
0060CD2C |. 8983 4C050000 MOV DWORD PTR DS:[EBX+54C],EAX
0060CD32 |. 33C0 XOR EAX,EAX
0060CD34 |. 8983 50050000 MOV DWORD PTR DS:[EBX+550],EAX
0060CD3A |. 8983 54050000 MOV DWORD PTR DS:[EBX+554],EAX
0060CD40 |. 33C0 XOR EAX,EAX
0060CD42 |. 8983 58050000 MOV DWORD PTR DS:[EBX+558],EAX
0060CD48 |. 8983 5C050000 MOV DWORD PTR DS:[EBX+55C],EAX
0060CD4E |. 8B9E A8030000 MOV EBX,DWORD PTR DS:[ESI+3A8]
0060CD54 |. B2 01 MOV DL,1
0060CD56 |. 8BC3 MOV EAX,EBX
0060CD58 |. E8 4FD4F6FF CALL 0057A1AC ; [Video2GIF.0057A1AC
0060CD5D |. 33C0 XOR EAX,EAX
0060CD5F |. 8983 38010000 MOV DWORD PTR DS:[EBX+138],EAX
0060CD65 |. 8983 3C010000 MOV DWORD PTR DS:[EBX+13C],EAX
0060CD6B |. A1 706B6300 MOV EAX,DWORD PTR DS:[636B70]
0060CD70 |. 33D2 XOR EDX,EDX
0060CD72 |. 8915 706B6300 MOV DWORD PTR DS:[636B70],EDX
0060CD78 |. E8 CF83DFFF CALL 0040514C
0060CD7D |. 5E POP ESI
0060CD7E |. 5B POP EBX
0060CD7F \. C3 RETN
3.去掉水印
Unregistered Version
Purchase it to remove this watemark
Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F
001B2910 B0 04 02 00 FF FF FF FF ?
001B2920 14 00 00 00 55 00 6E 00 72 00 65 00 67 00 69 00 U n r e g i
001B2930 73 00 74 00 65 00 72 00 65 00 64 00 20 00 56 00 s t e r e d V
001B2940 65 00 72 00 73 00 69 00 6F 00 6E 00 00 00 00 00 e r s i o n
001B2950 B0 04 02 00 FF FF FF FF 24 00 00 00 70 00 75 00 ? $ p u
001B2960 72 00 63 00 68 00 61 00 73 00 65 00 20 00 69 00 r c h a s e i
001B2970 74 00 20 00 74 00 6F 00 20 00 72 00 65 00 6D 00 t t o r e m
001B2980 6F 00 76 00 65 00 20 00 74 00 68 00 69 00 73 00 o v e t h i s
001B2990 20 00 77 00 61 00 74 00 65 00 72 00 6D 00 61 00 w a t e r m a
001B29A0 72 00 6B 00 00 00 00 00 r k
B0 04 02 00 FF FF FF FF 后面的 14[24] 是字符串長度,把它改成 00 就可以去掉水印
下 載 part01
下 載 part02
下 載 part03
下 載 part04
解壓密碼:http://m.shnenglu.com/nenlong
還有一款轉換工具 gamani GIF Movie Gear 4.22 也不錯,就是很多參數要手動調整,比較專業。
User Guide
Welcome to gamani GIF Movie Gear and its User Guide. Hopefully, this document will answer any questions you have about using this product to its fullest. Just getting started? You might want to check out the Tutorial. Enjoy!
Basics
GIF Movie Gear is a tool for building GIF animations. A GIF animation is nothing more than an ordered list of separate GIF images, much like a slide show, with instructions on how long to delay between images. The original GIF 89a specification was extended by adding the ability to loop, paving the way for animation on the World Wide Web that is simple to build and quick to download. The end result is what looks like a plain old GIF file (i.e. "filename.gif") but actually contains a small animation. An animation is inserted into an HTML page using an IMG tag, just like a "normal" GIF.
Terminology
First, some notes on terminology used in this document. A frame is a single image in an animation. An ordinary bitmap image becomes a frame once it is inserted into an animation. An animation refers to the collection of frames, complete with all related timing and color instructions. A GIF animation defines a screen size which is the rectangle in which the animation is visible. Individual frames are clipped to this screen. A frame's delay is the amount of time that the animation pauses after displaying the frame and before displaying the next frame; the delay is the primary method of controlling the flow of the animation. A palette is a collection of colors that is used to define a frame. GIF animations can contain two different kinds of palettes: a global palette that applies to all the frames in an animation and a local palette that controls the colors of a single frame. The GIF format definition limits palettes to 256 colors.
下 載 GIF Movie Gear 4.22
9158 虛擬視頻 logo 是在主程序的資源中有一個32位位圖BMP圖片。所以把這個資源文件用白色的同樣大的圖片替換就可以。開發商沒有加密這區數據也沒有加殼,所以修改起來灰長簡單。下面針對
4.5.0.3 版本進行試驗。
下載編譯程序
FILE *in= fopen("9158VirtualCamera.exe","r+");
if(!in)
{
in= fopen("C:\\Program Files\\9158VirtualCamera\\Bin\\9158VirtualCamera.exe","r+");
if(!in)
{
MessageBox("打開 9158VirtualCamera.exe 失敗.\n\n"
"把我復制到安裝程序目錄下面 \n\n"
"安裝默認目錄是 C:\\Program Files\\9158VirtualCamera\\Bin");
return;
}
}
long beginpos = 0x170cc0;//位圖數據區開始地址
long endpos = 0x1742FF;//位圖數據區結束地址
fseek(in,beginpos,0);
long p=0;
for(long i=beginpos;i<=endpos;i++)
{
//FF FF FF 00 來替換 就是白色
p++;
if(p%4!=0)
fputc(0xff,in);
else
fputc(0x00,in);
}
fclose(in);
MessageBox("去掉LOGO成功!");
年初母親病重突然離我而去,心情特別沉重。我在外面拼命工作也是為讓母親過的更好,可沒有母親我在外地工作也沒有動力?,F在有些懷疑我為什么在一個陌生的城市這樣無聊地活下去。有了這樣的想法,工作也不順心,決定要準備離開這個陌生的城市?,F在掙錢不是最重要的事情,在外地掙的錢夠在老家過十多年,想到這里真不想在這個城市待著,三十六計走為上策,回老家過著平靜的生活。
我從第一個單位出來已經整整10多年了,出來之后忙于掙錢東奔西跑,錢是攢了些,缺忽略了以前的親密戰友。
前幾天管理微博時突然發現非常熟悉的名字,還留QQ號碼和電話,真的非常高興,......