Widora_NEO: 试验用ffmpeg来看电影

用比较粗笨的办法来试验, 主要是为了体验一下通过widora_neo来看视频的感觉和效果,试验步骤如下:
0. 将480*320 LCD屏通过FT232H的8位并口与widora_NEO 的usb连接,

  1. 安装完整版本的ffmpeg, 直接用opkg install ffmpeg即可.

  2. 将要看的视频文件转换成Xvid编码形式的avi文件,尺寸大小为480x320,正好是tft LCD 的最大显示尺寸。将avi文件复制到一个u盘中, 插入与widora_NEO连接的usb-hub中,并mount到/movie目录。

  3. 将runbmp 放入后台运行, 这个程序其实就是不停地将/tmp目录下的bmp文件送到LCD显示,并将显示完成后的bmp文件删除,若没有bmp文件它就循环等待。源码见: https://github.com/widora/ctest/blob/master/runbmp.c

  4. 在/tmp下建立一个fifo.wav管道文件用来传输wav音频,然后启动 aplay -M /tmp/fifo.wav & 等待音频流。

  5. 最后启动ffmpeg程序,如果声音太卡的话将帧率调小点。当然你也可以在转换视频的时候选者高比特率。
    ffmpeg -i /movie/speed.avi -y -f wav /tmp/fifo.wav -r 12 -f image2 /tmp/%4d.bmp
    ffmpeg不断解码出bmp文件和wav流,供给runbmp和aplay来播放。

  6. 也可以在编译ffmpeg的时候将alsa加入到输出设备中,这样就不需要通过fifo管道来传递音频了,ffmpeg运行的时候可以通过选项 -f alsa default 直接将音频输出到alsa播放。

格式转换时调高了一下编码比特率, ,最后 fps=12,video stream 760kb/s audio stream 192kb/s 这样播放起来声音和图象都相对比较流畅, 片长19分20秒的视频,文件大小为123M, 总体效果感觉不错:
http://v.youku.com/v_show/id_XMzI0ODI0ODYxNg==.html?spm=a2hzp.8244740.0.0

需要改进处:

  1. 由于图象和声音没有同步机制,声音相对有一点超前。
  2. 声音有点卡(可以在转换视频时选高比特率来解决)。
  3. 目前软件的效率比较低,如果能在ffmpeg的基础上开发, 整合音频播放和视频的输出,效果肯定会更好。

@musich 其实网络上都有相应的参考资料,不是很难。

达到这功力, 得要多久啊, 一直在门口徘徊呢.

根据ffmpeg的教程自己写了个ffplay,效率大为提高,居然轻松播放 480x320 24bit 20fp 的影片(vidX格式)

!

24fp 的有点掉帧:
!

源码 https://github.com/widora/ctest/blob/master/ffmpeg/ffplay4.c

1 Like

效果真是不错,…

@mango 确实如此!!


另外,如果avi文件放在TF卡上而不是U盘上的话,那么可达到480x320x15fps
!

@midas-zhou 照这个比例,320*240岂不是可以冲击25fps了?

如果画面尺寸转换到400x240,那么每秒帧数可达到18
!

1 Like

@xianlee 3.5寸液晶显示模块 ILI9488控制的8位并口输入的。

屏幕哪里买的,链接来一个?

@mango 播放到5,10,15,19分时的情况分别如下:
!

!

!

!

1 Like

正常播放时,cpu使用率和内存使用率都多少?