mpeg+sdl
教程 ---------- 编写一个简单的播放器
1
人阅读 评论收藏 举报
最近在研究 ,由于详细介绍 的文档资料很少,有人就说了
学习 的最好办法就是看一些可以正常工作的代码,当你看懂了
和 两个文件就算入门了,但是这两个文件相当恐怖啊,一
个 行,一个 行,初学者难免看着难免头晕吃力,可以 先从简单的
开始,比如 和 ,然后再去网上找点稍微复
杂点的例子来看
我觉得这个( !"!!) 教程很好,
由浅入深,而最终代码也不过一千行多一点,非常适合像我这样的初学者,决
定整理一下这个教程,方便以后查看
首先是编译环境的搭建,先下载两个压缩包 ##$%&'!! 和
%&( )*+,,再下载一 个工程压缩包
--(这个压缩包可以通过关键字“
.找到)。
第一步,编译 -- 中的工程
解压 -- 中的工程,我用的是 ) 编译的这个工程,
也可用 ) 来编译,如果编译成功了,运行程序会生成一个自 定义文件名的
视频音频文件,这个文件通过简单的算法生成了规则变换的图像和声音(图像
是几个有渐变色的斜放色条像左移动,声音很难听),至此 的环境就
算搭建好了,可以成功编译 !"!!
的
第一个例子了,要成功编译后面的例子需要 %&( 的支持。
第二步,为工程导入 %&( 库,具体步骤可以通过搜索“)%&( 使用”找到相
关教程/如果导入不成功可以为工程添加依赖项:
工程0选项0链接器0输入0附加依赖项:%&(1%&("1
) 1) )1)2!1)$!1)13431
例 的程序功能是把一个视频文件的前 帧导出为 格式的文件,
格式的文件可以通过 5+&% 等软件打开
下面是例 的完整代码:
[cpp:collapse:showcolumns]6" 3! )4
" !" 7
!
+ 13 "!18!"91:"1"
1;<=8>*=?@A%
?3 "B"/+*%)!3"C 4B++
533!!343431)$!
" 1)
! ) $!2
C
D3
E
!!)$!) ,
1 33"1)$!" 1) !!!
"3
!33
<"3"
C !) 2
E 4!2!32)$!3$!F) 2F 3;
"GG8
$!
H" F1)$!)$!F
H" F1343343F
H" I3 0
H" I0
C
) %)#!5*#!J#!/"4 /"/"
#!
E K
#A(=J#L
!3,#"MNL
"L
>"2
3!"$3,#"/F$!O F/#!L
#P$"3,#"/F41FL
C $#PPQD((
!!"L
E
R! !
$!"$#/FG"O O ""F/4 /L
R!
$!PLIL66
$4!#!0 MN6J#!0"3,MN//4
J/#L
C +32
$3#L
E S
"""!/!J!)MN
K
5*#!+"J#!+L
"/) %!L
5*+ +"J+ +L
5*+ J+ L
C 5*#!J#!L
5*#!J#!<B9L
E 5*G;;L
"$!#"3 L
""93L
"-J1!L
$!I
K
!"$FG3!) )2"FL
C !!"L
S
E <3!$!3" 3
C )-!3!-L
C
C >") 2
C $)-"-"-2T#!+/!)MN/QD((//QD((
UP
C !!"L+ "V"2
C
C <!)3!"$!"
CC $)-2" -3!-"$#!+I
C !!"L+ "V2" 3!"$!"
CE
&"$!"12"3" ! !!!
-$!#!+//!)MN/L
#" 2!3) 3!
) %!PL
$!PLI#!+0"1-3!3L66
$#!+03!3MN0
0 -PP+>&=+-?WG=-*A&=>
C K
) %!PL
E 1!;L
E S
E $) %!PP
E !!"L& "V2" ) 3!
E
E B"! "$!) 3!
E + +P#!+03!3M) %!N0 L
E
EC #" !$!) 3!
E + P) -2" - !+ +0 - L
EE $+ PPQD((
K
$!"$3 !!/FD"3! U"FL
!!"L+ "$"
S
>"
$) -"+ +/+ I
!!"L+ ""
C
5) $!
E #!P) --$!L
5"5*#!3!!
#!<B9P) --$!L
$#!<B9PPQD((
!!"L
&!"!X! 1!3," 1!
C "93P)!--3,GAY-#8?-<B9/+
+04 /
+ +0L
E 1!P"-J)-"93J3,$"-L
533"!!!3$1!"3"
#!<B9
Q#!<B93"5*#!/15*#!3
3!3
$5*G!
)!-25*G!J#!<B9/1!/GAY-#8?
-<B9/
+ +04 /+ +0L
C 33!%43+"J-")!-L
$-")!-PPQD((
E K
-")!-P343-+"+ +
04 /+ +0/
+ +0-$/
+ +04 /+ +
0/
GAY-#8?-<B9/