在linux编译和运行x264及ffmpeg(转)

在linux编译和运行x264及ffmpeg
http://www.usr.cc/thread-52054-1-2.html

首先,代码是什么不知道,老婆传给我的,要下载的点 这里 。里面包含了both编码器和解码器。还要下载一个测试文件: YUV格式的原始文件
解压后里面两个目录:
x264和ffmpeg,前者是编码器,后者解码器。
先编译x264:

  1. sudo chmod +x config*
  2. ./configure
  3. make

前后就生成了x264可执行文件。
把yuv文件放进去编码一下:

  1. ./x264 -q 30  -o ./a.264 ./akiyo_qcif.yuv 176x144
  2. x264 [info]: using cpu capabilities: none!
  3. 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
  4. 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
  5. x264 [info]: mb I  I16..4: 22.7%  0.0% 77.3%
  6. 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%
  7. x264 [info]: SSIM Mean Y:0.9684876
  8. x264 [info]: PSNR Mean Y:37.354 U:40.934 V:41.803 Avg:38.324 Global:38.300 kb/s:18.11

  9. encoded 300 frames, 228.54 fps, 18.42 kb/s


生成文件是a.264,用movie player播放一下,嘿嘿,不错嘛~
我说的是日本小姐长的不错,呵呵  
然后是编译ffmpeg喽,进到ffmpeg目录下,顺便把a.264复制过去。

  1. sudo chmod +x configure
  2. ./configure 
  3. make

生成的有一个ffmpeg文件,运行一下:

  1. ./ffmpeg -i a.264 a.yuv
  2. FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
  3.   configuration: 
  4.   libavutil version: 49.5.0
  5.   libavcodec version: 51.44.0
  6.   libavformat version: 51.14.0
  7.   built on Nov  5 2011 18:58:37, gcc: 4.4.5
  8. Input #0, h264, from 'a.264':
  9.   Duration: N/A, bitrate: N/A
  10.   Stream #0.0: Video: h264, yuv420p, 176x144, 25.00 fps(r)
  11. Output #0, rawvideo, to 'a.yuv':
  12.   Stream #0.0: Video: rawvideo, yuv420p, 176x144, q=2-31, 200 kb/s, 25.00 fps(c)
  13. Stream mapping:
  14.   Stream #0.0 -> #0.0
  15. Press [q] to stop encoding
  16. frame=  300 fps=  0 q=0.0 Lsize=   11138kB time=12.0 bitrate=7603.2kbits/s    
  17. 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

你可能感兴趣的:(在linux编译和运行x264及ffmpeg(转))