【平头哥Sipeed LicheeRV 86 Panel测评】10-视频播放测试
<p cid="n52" mdtype="paragraph">本篇介绍在Sipeed LicheeRV 86 Panel中播放视频。</p><p cid="n54" mdtype="paragraph">Tina镜像中内置了FFmpeg软件包,可以使用FFmpeg进行视频播放。</p>
<h1 cid="n55" mdtype="heading">FFmpeg简介</h1>
<p cid="n56" mdtype="paragraph">FFmpeg(Fast Forward Mpeg)是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。</p>
<p cid="n57" mdtype="paragraph"></p>
<h2 cid="n58" mdtype="heading">FFmpeg命令行使用格式</h2>
<p cid="n87" mdtype="paragraph">FFmpeg 的命令行参数可以分成五个部:</p>
<pre>
<code>$ ffmpeg {1} {2} -i {3} {4} {5}</code></pre>
<ol cid="n93" mdtype="list">
<li cid="n94" mdtype="list_item">
<p cid="n95" mdtype="paragraph">全局参数</p>
</li>
<li cid="n96" mdtype="list_item">
<p cid="n97" mdtype="paragraph">输入文件参数</p>
</li>
<li cid="n98" mdtype="list_item">
<p cid="n99" mdtype="paragraph">输入文件</p>
</li>
<li cid="n100" mdtype="list_item">
<p cid="n101" mdtype="paragraph">输出文件参数</p>
</li>
<li cid="n102" mdtype="list_item">
<p cid="n103" mdtype="paragraph">输出文件</p>
</li>
</ol>
<p cid="n107" mdtype="paragraph">例如本次需要进行视频播放的命令为:</p>
<pre>
<code>ffmpeg -i /mnt/exUDISK/badapple_480360_xvid.mp4 -pix_fmt bgra -f fbdev /dev/fb0 -f alsa hw:0,0</code></pre>
<p cid="n110" mdtype="paragraph">FFmpeg常用的命令行参数有:</p>
<pre cid="n113" lang="sh" mdtype="fences" spellcheck="false">
-c:指定编码器
-c copy:直接复制,不经过重新编码(这样比较快)
-c:v:指定视频编码器
-c:a:指定音频编码器
-i:指定输入文件
-an:去除音频流
-vn: 去除视频流
-preset:指定输出的视频质量,会影响文件的生成速度,有以下几个可用的值 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow。
-y:不经过确认,输出时直接覆盖同名文件。</pre>
<h1 cid="n83" mdtype="heading">视频播放测试</h1>
<h2 cid="n59" mdtype="heading">播放例程所用的BadApple测试视频</h2>
<p cid="n60" mdtype="paragraph">播放U盘里的BadApple视频::</p>
<pre>
<code>ffmpeg -i /mnt/exUDISK/badapple_480360_xvid.mp4 -pix_fmt bgra -f fbdev /dev/fb0 -f alsa hw:0,0</code></pre>
<p cid="n62" mdtype="paragraph"></p>
<p cid="n63" mdtype="paragraph">使用如下指令,可以使画面居中,上下可以留黑边,但是视频播放会稍微变卡:</p>
<pre>
<code>ffmpeg -i /mnt/exUDISK/badapple_480360_xvid.mp4 -pix_fmt bgra -vf pad='w=480:h=480:x=(ow-iw)/2:y=(oh-ih)/2' -f fbdev /dev/fb0 -f alsa hw:0,0</code></pre>
<p cid="n65" mdtype="paragraph"> </p>
<h2 cid="n66" mdtype="heading">播放自制的视频</h2>
<p cid="n67" mdtype="paragraph">自己制作一段视频,已xvid格式编码视频,分辨率调整到480x480,比如我将“打,打个大西瓜”这个短片使用视频编辑软件改了一下视频的尺寸,播放指令如下:</p>
<pre>
<code>ffmpeg -i /mnt/exUDISK/dgdxg_xvid.mp4 -pix_fmt bgra -f fbdev /dev/fb0 -f alsa hw:0,0</code></pre>
<p cid="n69" mdtype="paragraph">串口输出如下:</p>
<p cid="n70" mdtype="paragraph"></p>
<p cid="n71" mdtype="paragraph">实际的播放效果还是比较流畅的:</p>
<p cid="n72" mdtype="paragraph"></p>
<p cid="n73" mdtype="paragraph">实测播放的演示视频:<a href="https://www.bilibili.com/video/BV1hY411G7DG?spm_id_from=333.999.0.0">https://www.bilibili.com/video/BV1hY411G7DG?spm_id_from=333.999.0.0</a></p>
<h2 cid="n75" mdtype="heading">播放电视直播</h2>
<p cid="n76" mdtype="paragraph">找一个电视直播的视频源,板子连网之后可以查看电视直播:</p>
<pre>
<code>ffmpeg -i http://183.207.249.6/PLTV/3/224/3221225534/index.m3u8 -pix_fmt bgra -vf scale=480:480 -f fbdev /dev/fb0 -f alsa hw:0,0</code></pre>
<p cid="n78" mdtype="paragraph">指令中的“-vf scale=480:480”是用来将x视频尺寸调整至480x480,播放画面如下,虽然能播,但是画面非常的卡。</p>
<p cid="n79" mdtype="paragraph"></p>
<h1 cid="n80" mdtype="heading">总结</h1>
<p cid="n81" mdtype="paragraph">本篇测试了Sipeed LicheeRV 86 Panel开发板使用FFmpeg进行视频播放的能力,对于播放480x480以下的视频,画面和声音都比较流程,如果使用了FFmpeg的尺寸修改功能,或是从网络直播源播放视频,播放就会不同程度的变卡。</p>
<p>播放卡的情况与FFmpeg的尺寸修改有关还有其他原因么</p>
<p>能直接看视频还真不错,我有一个录屏软件需要用到ffmpeg,在网上下载了很长时间都没下来,后来就一直使用AVI了。</p> Jacktang 发表于 2022-3-2 07:32
播放卡的情况与FFmpeg的尺寸修改有关还有其他原因么
<p>我猜可能是修改尺寸后又占用了CPU的一些计算资源,影响了视频解码</p>
<p>向你学习呀,你是第一个拿到开发板的,测试效果很好呀!</p>
<p>ffmpeg之前也接触过,ffmpeg编程方面的教程比较少。</p>
lugl4313820 发表于 2022-3-3 07:34
向你学习呀,你是第一个拿到开发板的,测试效果很好呀!
<p>互相学习,共同进步<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/handshake.gif" width="48" /></p>
<p>非常厉害,学习了!</p>
<p>关键是后面的u盘怎么连接的???</p>
yinxx 发表于 2022-3-9 22:49
关键是后面的u盘怎么连接的???
<p>插上U盘,这个linux系统会自动识别</p>
页:
[1]