LitchiCheng 发表于 2024-2-17 15:48

RV1106手把手教你:ffmpeg无界面使用USB摄像头录制视频

<div class='showpostmsg'> 本帖最后由 LitchiCheng 于 2024-2-17 16:17 编辑

<article data-content="[{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;pqdD-1708133140446&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{&quot;version&quot;:1},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;dbjp-1708133140447&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;安装ffmpeg&quot;,&quot;marks&quot;:[]}]}],&quot;state&quot;:{}}]">
<p><span style="font-size:18px;">实验过程</span></p>

<p>安装ffmpeg</p>

<pre>
<code>sudo apt update
sudo apt install ffmpeg</code></pre>

<article data-content="[{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;HXaK-1708133088017&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{&quot;version&quot;:1},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;zsSL-1708133088016&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;录制视频的指令,usb摄像头为/dev/video0&quot;,&quot;marks&quot;:[]}]}],&quot;state&quot;:{}}]">
<p>插入usb摄像头为,对应的设备为/dev/video0,需要更新内核配置和设备树的USB模式为host,参考</p>

<p><a href="https://bbs.eeworld.com.cn/thread-1271075-1-1.html">rv1106开发板配置TypeC接口USB Host并识别USB设备 - 国产芯片交流 - 电子工程世界-论坛 (eeworld.com.cn)</a></p>

<p> &nbsp;</p>

<p>ffmpeg的参数说明</p>

<article data-content="[{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;5JJH-1708132523065&quot;,&quot;name&quot;:&quot;quote&quot;,&quot;data&quot;:{},&quot;nodes&quot;:[{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;pFO7-1708077143609&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;eMMr-1708077143608&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;-f 输出格式,使用v4l2&quot;,&quot;marks&quot;:[]}]}]},{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;BoSS-1708077143611&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;JvC9-1708077143610&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;-s 分辨率,太大会占用过多cpu,建议比较小&quot;,&quot;marks&quot;:[]}]}]},{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;m98q-1708077143613&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;L56x-1708077143612&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;-r 帧率,需要对应摄像头支持范围&quot;,&quot;marks&quot;:[]}]}]},{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;8pck-1708077143615&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;aQpP-1708077143614&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;-vcodec 编码方式&quot;,&quot;marks&quot;:[]}]}]},{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;jvSB-1708077143617&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;diLA-1708077143616&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;-i 数据输入流的路径&quot;,&quot;marks&quot;:[]}]}]},{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;cX3o-1708077143619&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;IEC8-1708077143618&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;-b:v video码率,默认1000k&quot;,&quot;marks&quot;:[]}]}]},{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;smSh-1708077143621&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;9xxl-1708077143620&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;-an 无audio&quot;,&quot;marks&quot;:[]}]}]},{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;fpZ1-1708077143625&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;znw2-1708077143624&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;-pix_fmt 像素格式,需要对应摄像头支持范围,如yuv420p,yuvj422p,mjpeg&quot;,&quot;marks&quot;:[]}]}]},{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;i887-1708077143627&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;4G9l-1708077143626&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;-b:a audio码率&quot;,&quot;marks&quot;:[]}]}]},{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;pAMX-1708077143629&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;pbuU-1708077143628&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;-vcodec libx264,转为H264编码,可以查看ffmpeg的codec支持&quot;,&quot;marks&quot;:[]}]}]},{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;GucV-1708077143631&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;XMoU-1708077143630&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;-preset 处理模式,有ultrafast, superfast, veryfast, faster, fast, medium&quot;,&quot;marks&quot;:[]}]}]}],&quot;state&quot;:{}}]">
<p>&nbsp;&nbsp;&nbsp;&nbsp;-f 输出格式,使用v4l2</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;-s 分辨率,太大会占用过多cpu,建议比较小</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;-r 帧率,需要对应摄像头支持范围</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;-vcodec 编码方式</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;-i 数据输入流的路径</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;-b:v video码率,默认1000k</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;-an 无audio</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;-pix_fmt 像素格式,需要对应摄像头支持范围,如yuv420p,yuvj422p,mjpeg</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;-b:a audio码率</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;-vcodec libx264,转为H264编码,可以查看ffmpeg的codec支持</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;-preset 处理模式,有ultrafast, superfast, veryfast, faster, fast, medium</p>

<p>使用如下指令进行录制,视频文件名称v1.mp4</p>

<pre>
<code>ffmpeg -f v4l2 -s 432x240 -r 30 -vcodec mjpeg -i /dev/video0 -pix_fmt yuv420p -b:v 2000k -vcodec libx264 -preset veryfast -an v1.mp4</code></pre>

<p> &nbsp;</p>

<article data-content="[{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;wDoc-1708132528514&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;Dj9F-1708132528513&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;需要使用sudo权限,录像过程如上图,结束可以输出q按键或者Ctrl-C&quot;,&quot;marks&quot;:[]}]}],&quot;state&quot;:{}}]">
<p>需要使用sudo权限,录像过程如上图,结束可以输出q按键或者Ctrl-C &nbsp;</p>

<article data-content="[{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;ml0w-1708132652489&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;yeA3-1708132652487&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;文件名为&quot;,&quot;marks&quot;:[]}]}],&quot;state&quot;:{}}]">
<p>文件名为v1.mp4</p>

<p> &nbsp;</p>

<article data-content="[{&quot;type&quot;:&quot;block&quot;,&quot;id&quot;:&quot;YVqp-1708132595737&quot;,&quot;name&quot;:&quot;paragraph&quot;,&quot;data&quot;:{&quot;version&quot;:1},&quot;nodes&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;id&quot;:&quot;0kZZ-1708132595738&quot;,&quot;leaves&quot;:[{&quot;text&quot;:&quot;打开看一下&quot;,&quot;marks&quot;:[]}]}],&quot;state&quot;:{}}]">
<p>打开看一下</p>

<p> &nbsp;</p>

<p><span style="font-size:18px;">视频讲解</span></p>

<p><iframe allowfullscreen="true" frameborder="0" height="450" src="//player.bilibili.com/player.html?bvid=1Lu4m1P7yw&amp;page=1" style="background:#eee;margin-bottom:10px;" width="700"></iframe><br />
&nbsp;</p>
</article>
</article>
</article>
</article>
</article>
</article>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

MianQi 发表于 2024-2-17 19:14

<p>看过了视频,讲解画面稳定,音质清晰。</p>

LitchiCheng 发表于 2024-2-18 09:07

MianQi 发表于 2024-2-17 19:14
看过了视频,讲解画面稳定,音质清晰。

<p>感谢支持,有什么使用问题可以留言</p>

li-ai-meng 发表于 2024-4-20 23:36

<p>rv1106使用ffmpeg的时候</p>

<ul>
        <li>sudo apt update无法解析域名</li>
        <li>sudo apt install ffmpeg无法安装,请问要怎末解决</li>
</ul>

LitchiCheng 发表于 2024-4-21 10:28

li-ai-meng 发表于 2024-4-20 23:36
rv1106使用ffmpeg的时候


        sudo apt update无法解析域名
        sudo apt install ffmpeg无法安装,请问要怎 ...

<p>你这个是没联网吧</p>

li-ai-meng 发表于 2024-4-22 19:29

LitchiCheng 发表于 2024-4-21 10:28
你这个是没联网吧

<p>如果用网络共享把WiFi共享给网口的网卡,然后通过网线连接的ssh就自动断开了,这个要怎末解决?</p>

<p>&nbsp;</p>

LitchiCheng 发表于 2024-4-23 20:57

li-ai-meng 发表于 2024-4-22 19:29
如果用网络共享把WiFi共享给网口的网卡,然后通过网线连接的ssh就自动断开了,这个要怎末解决?

&nbsp ...

<p>没碰到过,你可以自己研究下,我是直接网线</p>

四眼兔子 发表于 2024-10-8 10:23

<p>请问下,我用的buildroot镜像,安装ffmpeg后,无法使用libx264编码,请问怎么配置才能增加libx264的支持?</p>

四眼兔子 发表于 2024-10-8 10:25

LitchiCheng 发表于 2024-2-18 09:07
感谢支持,有什么使用问题可以留言

<p>请教buildroot镜像,如何增加libx264的支持,好多天都没搞好</p>

LitchiCheng 发表于 2024-10-8 11:24

四眼兔子 发表于 2024-10-8 10:25
请教buildroot镜像,如何增加libx264的支持,好多天都没搞好

<p>你现在是怎么操作没弄好的</p>

四眼兔子 发表于 2024-10-8 13:52

LitchiCheng 发表于 2024-10-8 11:24
你现在是怎么操作没弄好的

<p>我修改Buildroot的配置,增加了对ffmpeg的支持,ffmpeg下的配置如下图:</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p>对于libx264的支持,在buildroot中搜关键字&rdquo;libx264&ldquo;搜不到:</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p>但是搜&rdquo;x264&ldquo;能搜到一个,我就给选上了,如下图:</p>

<p>&nbsp;</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p>然后重新编译,生成镜像,烧录后,使用ffmpeg相关指令,调用264编码相关的参数,会报错:找不到libx264编码</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

四眼兔子 发表于 2024-10-9 10:17

LitchiCheng 发表于 2024-10-8 11:24
你现在是怎么操作没弄好的

<p>你好,能回复下吗?关于我再buildroot下无法添加libx264的问题</p>
页: [1]
查看完整版本: RV1106手把手教你:ffmpeg无界面使用USB摄像头录制视频