在linux编译和运行x264及ffmpeg
http://www.usr.cc/thread-52054-1-2.html
首先,代码是什么不知道,老婆传给我的,要下载的点 这里 。里面包含了both编码器和解码器。还要下载一个测试文件: YUV格式的原始文件 。
解压后里面两个目录:
x264和ffmpeg,前者是编码器,后者解码器。
先编译x264:
前后就生成了x264可执行文件。
把yuv文件放进去编码一下:
生成文件是a.264,用movie player播放一下,嘿嘿,不错嘛~
我说的是日本小姐长的不错,呵呵
然后是编译ffmpeg喽,进到ffmpeg目录下,顺便把a.264复制过去。
生成的有一个ffmpeg文件,运行一下:
要查看生成的yuv文件,我下载了一个yuv播放器,怕原网址不好用了,我存我快盘里了,大家可以 这里 下载。
播放一下:
pyuv a.yuv
弹出对话框,设置size为176x244, subsampling为4:2:0,好了,可以播放,效果还不错。
在编译ffmpeg时碰到下面的问题:bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory,请问楼主怎么解决?
解决了:configure是在window下写的,所以在每行后面会加个ctrl+m就是^M,所以后面的,sh就变成sh^M当然是没有这个命令的,所以脚本就不能运行了,把^M去掉就应该没问题了
cat ./configure | tr -d '\r' > temp
mv temp configure
sudo chmod +x configure
./configure
make
http://www.usr.cc/thread-52054-1-2.html
首先,代码是什么不知道,老婆传给我的,要下载的点 这里 。里面包含了both编码器和解码器。还要下载一个测试文件: YUV格式的原始文件 。
解压后里面两个目录:
x264和ffmpeg,前者是编码器,后者解码器。
先编译x264:
- sudo chmod +x config*
- ./configure
- make
前后就生成了x264可执行文件。
把yuv文件放进去编码一下:
- ./x264 -q 30 -o ./a.264 ./akiyo_qcif.yuv 176x144
- x264 [info]: using cpu capabilities: none!
- x264 [info]: slice I:2 Avg QP:27.00 size: 2526 PSNR Mean Y:39.42 U:41.80 V:42.83 Avg:40.18 Global:40.18
- x264 [info]: slice P:298 Avg QP:30.00 size: 74 PSNR Mean Y:37.34 U:40.93 V:41.80 Avg:38.31 Global:38.29
- x264 [info]: mb I I16..4: 22.7% 0.0% 77.3%
- x264 [info]: mb P I16..4: 0.0% 0.0% 0.0% P16..4: 7.0% 6.0% 1.4% 0.0% 0.0% skip:85.7%
- x264 [info]: SSIM Mean Y:0.9684876
- x264 [info]: PSNR Mean Y:37.354 U:40.934 V:41.803 Avg:38.324 Global:38.300 kb/s:18.11
- encoded 300 frames, 228.54 fps, 18.42 kb/s
生成文件是a.264,用movie player播放一下,嘿嘿,不错嘛~
我说的是日本小姐长的不错,呵呵
然后是编译ffmpeg喽,进到ffmpeg目录下,顺便把a.264复制过去。
- sudo chmod +x configure
- ./configure
- make
生成的有一个ffmpeg文件,运行一下:
- ./ffmpeg -i a.264 a.yuv
- FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
- configuration:
- libavutil version: 49.5.0
- libavcodec version: 51.44.0
- libavformat version: 51.14.0
- built on Nov 5 2011 18:58:37, gcc: 4.4.5
- Input #0, h264, from 'a.264':
- Duration: N/A, bitrate: N/A
- Stream #0.0: Video: h264, yuv420p, 176x144, 25.00 fps(r)
- Output #0, rawvideo, to 'a.yuv':
- Stream #0.0: Video: rawvideo, yuv420p, 176x144, q=2-31, 200 kb/s, 25.00 fps(c)
- Stream mapping:
- Stream #0.0 -> #0.0
- Press [q] to stop encoding
- frame= 300 fps= 0 q=0.0 Lsize= 11138kB time=12.0 bitrate=7603.2kbits/s
- video:11138kB audio:0kB global headers:0kB muxing overhead 0.000000%
要查看生成的yuv文件,我下载了一个yuv播放器,怕原网址不好用了,我存我快盘里了,大家可以 这里 下载。
播放一下:
pyuv a.yuv
弹出对话框,设置size为176x244, subsampling为4:2:0,好了,可以播放,效果还不错。
在编译ffmpeg时碰到下面的问题:bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory,请问楼主怎么解决?
解决了:configure是在window下写的,所以在每行后面会加个ctrl+m就是^M,所以后面的,sh就变成sh^M当然是没有这个命令的,所以脚本就不能运行了,把^M去掉就应该没问题了
cat ./configure | tr -d '\r' > temp
mv temp configure
sudo chmod +x configure
./configure
make