0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将树莓派变成专用的视频播放机

454398 来源:网络整理 作者:网络整理 2019-12-02 15:45 次阅读

概述

您是否需要一种简单的方法来显示无缝循环的视频文件,例如在艺术品展览或数字标牌中?查看这个Raspberry Pi视频循环器项目,以了解如何将Raspberry Pi变成专用的视频播放机。只需将装有电影的USB驱动器插入Raspberry Pi,它就会循环播放它们!

Raspberry Pi是构建视频播放设备的绝佳平台,因为它价格便宜,体积小,并支持硬件视频加速。但是,对播放和循环播放视频的许多选项进行分类会造成混淆,而将所有内容放入易于使用的程序包中则更加麻烦。该项目已经为您完成了所有艰苦的工作,以使Raspberry Pi上最流行,最可靠的视频播放选项易于使用。

最重要的是,我们针对该视频播放器进行了调整和优化, Raspberry Pi可实现音频无缝循环! (视频最后一帧的循环之间有100ms的间隔,但没有黑屏闪烁)

要开始使用,您需要一台Raspberry Pi计算机。第一代模型(A,B,A +,B +)或第二代Pi 2都可以很好地工作。您还需要一个USB记忆棒,用于保存电影以进行播放。

如果您是Raspberry Pi的新手,我建议您阅读前几篇学习Raspberry Pi指南,以获取有关Raspberry Pi的概述。 Raspberry Pi的基本用法。

继续学习如何为Pi视频循环器项目设置和安装软件。

安装

首先请确保已在Raspberry Pi上加载了最新的Raspbian操作系统。您可以在此处找到OS映像下载,在此处找到刻录到SD卡映像的说明,并在此处找到说明如何加载操作系统的便捷指南。

请确保您的Raspberry Pi已连接到互联网,通过有线连接到其以太网端口,或通过建立对WiFi网络的无线访问。请查阅网络设置指南,了解有关在Pi上使用无线和WiFi网络的更多详细信息

Raspberry Pi通电并连接到网络后,可以按照以下步骤安装视频循环播放器软件

。如果您熟悉连接到Raspberry Piover SSH的过程,则可以使用SSH终端应用程序进行连接,并跳到下面的安装命令部分。如果您不熟悉SSH,则可以使用Adafruit Pi Finder工具查找Raspberry Pi并打开终端以运行安装。我将在下面使用Pi Finder工具显示安装步骤。

注意最新的版本的Raspbian(Jessie full&lite自2017年2月以来)默认情况下会禁用SSH!阅读以下内容以了解如何启用SSH,以便您可以使用Pi Finder之类的工具访问Pi。

启用SSH(最新的Raspbian Jessie)

对于Raspbian Jessie&Jessie Lite,自2017年2月起,您需要先启用SSH,然后才能登录给Pi。有关更改的更多详细信息,请参见公告。但是,要启用SSH,您需要将一个名为 ssh 的空白文件(无扩展名!)添加到该分区的/boot 分区中。 Pi的MicroSD卡。将MicroSD卡放入读卡器中,然后在计算机上打开其驱动器(该驱动器应称为 boot )。创建文件并将其命名为 ssh (具有没有文件扩展名),您可以使用记事本之类的工具或其他文本编辑器(只需确保它没有添加即可)。 txt扩展名!)。弹出MicroSD卡,Pi应该会启动并自动启用SSH。

通过PiFinder安装

如果您通过以太网连接,则可以使用Adafruit Pi Finder非常轻松地连接到您的PI

首先为以下版本下载正确的Pi Finder版本:您的操作系统并打开存档。运行pibootstrap可执行文件,您应该看到一个带有 Find My Pi!按钮的屏幕,如下所示:

确保您的Raspberry Pi已通电并已连接到网络。然后点击查找我的Pi!,让Pi Finder工具在网络上搜索Raspberry Pi。

请注意,如果您使用的是Pi Bootstrap工具,则可能无法找到您的Pi。像在工作环境中一样,使用复杂的网络。如果Pi Finder找不到您的Pi,请尝试使用SSHand连接到Pi,跳到安装命令部分。

搜索一会儿之后,当找到Raspberry Pi时,应该会出现如上的屏幕。请注意,IP地址,端口,用户名和密码字段均填充有默认值。

如果使用的是全新的Raspbian安装,则应将用户名和密码值保留为默认值。 pi 和树莓。如果您更改了Pi的用户名或密码,请在表单中输入正确的值。

忽略其余字段,例如主机名,SSID等。我们无需更改任何其他内容即可安装

现在单击 Terminal (终端)按钮打开Raspberry Pi上的命令终端。

片刻之后,您应该会看到一个终端打开,上面显示类似上面的消息。此时,您已连接到Raspberry Pi,并准备运行命令来安装视频循环播放器。

如果由于某种原因终端无法连接,请检查您的Raspberry Pi是否已连接到网络。并尝试使用Pi Finder再次找到它。

安装命令

要首先安装该软件,请完全按照以下命令键入以下命令(请注意,Pi Finder中现在有一个小错误,复制/粘贴不起作用,但是请不要担心输入命令的时间不长):

下载:文件

复制代码

sudo apt-get update

sudo apt-get install -y git

git clone https://github.com/adafruit/pi_video_looper.git sudo apt-get update

sudo apt-get install -y git

git clone https://github.com/adafruit/pi_video_looper.git

按Enter键运行命令后,您应该会看到类似上面的显示内容。视频循环播放器的源代码已下载到您的Raspberry Pi中。

现在运行以下两个命令以完成安装:

下载:文件

复制代码

cd pi_video_looper

sudo 。/install.sh cd pi_video_looper

sudo 。/install.sh

您应该开始看到很多消息打印到屏幕上,如下所示:软件已下载并安装。

大约5分钟后,您将看到安装停止,并显示消息已完成! ,如下图所示。如果看到此消息,则表示安装成功。

如果由于某种原因安装失败,它将立即停止并显示错误。检查终端是否有错误,以查看是否可以轻松纠正错误(例如无法访问互联网),或者尝试在Adafruit论坛上寻求更多帮助。

在安装软件后,您应该会看到视频在HDMI端口上显示弯针。假设没有将带有电影的USB驱动器连接到您的Pi,应该有一条消息告诉您插入USB驱动器,如下所示:

如果您看到上面的消息,那么恭喜您安装了视频循环播放器软件!继续学习如何使用视频循环播放器。

用法

播放视频

安装后,将视频循环器配置为从Raspberry Pi中插入的USB驱动器播放电影。默认的视频播放器omxplayer可以播放大多数以H.264视频编码编码的视频,其视频格式为.avi,.mov,.mkv,.mp4或.m4v。您甚至可以播放720p和1080p电影,因为omxplayer将使用Pi的GPU(图形处理单元)有效地播放视频!

如果插入带有电影的USB记忆棒,则在运行视频循环器的情况下会显示带有检测到的电影,并进行10秒的倒计时,如下所示:

如果只有一部电影,它将连续循环播放。

如果发现一部以上的电影,则每部电影将按字母顺序播放文档名称。一旦最后一部电影播放了视频,looper就会循环回到第一部视频,并再次按顺序重复播放所有视频。

与多部视频播放相比,使用omxplayer进行单部电影播放具有更多的“无缝”循环。如果有多个视频,电影之间的可见延迟很小,但是只有一个视频,循环延迟只有大约100毫秒。有关如何在循环播放视频中获得最佳效果的建议,请参见循环提示部分。

在播放视频时,音频将同时在Raspberry Pi的HDMI输出和模拟声音输出上输出。您可以将任一输出连接到扬声器以收听电影音频。

配置

您可以通过更改视频循环器的配置文件中的设置来自定义视频循环器的行为。 如果只需要播放USB驱动器上的电影,则无需更改配置,安装后一切准备就绪!。但是,如果要从目录中的电影播放SD卡,更改视频播放器,禁用屏幕显示消息,或者继续阅读。

配置文件存储在Raspberry Pi SD的/boot 部分中卡,这意味着您可以直接在计算机上对其进行编辑。关闭Raspberry Pi(如果不确定如何操作,请参阅此页),拉出micro SD卡,然后将其插入计算机。在计算机上显示卡上的文件之后,在文本编辑器中打开 video_looper.ini 文件。

在配置文件的顶部,您将看到类似以下的文本:

下载:文件

复制代码

# Main configuration file for video looper.

# You can change settings like what video player is used or where to search for

# movie files. Lines that begin with # are comments that will be ignored.

# Uncomment a line by removing its preceding # character.

# Video looper configuration block follows.

[video_looper]

# What video player will be used to play movies. Can be either omxplayer or

# hello_video. omxplayer can play common formats like avi, mov, mp4, etc. and

# with full audio and video, but it has a small ~100ms delay between loops.

# hello_video is a simpler player that doesn‘t do audio and only plays raw H264

# streams, but loops seemlessly. The default is omxplayer.

video_player = omxplayer

#video_player = hello_video

# Where to find movie files. Can be either usb_drive or directory. When using

# usb_drive any USB stick inserted in to the Pi will be automatically mounted

# and searched for video files (only in the root directory)。 Alternatively the

# directory option will search only a specified directory on the SD card for

# movie files. Note that you change the directory by modifying the setting in

# the [directory] section below. The default is usb_drive.

file_reader = usb_drive

#file_reader = directory # Main configuration file for video looper.

# You can change settings like what video player is used or where to search for

# movie files. Lines that begin with # are comments that will be ignored.

# Uncomment a line by removing its preceding # character.

# Video looper configuration block follows.

[video_looper]

# What video player will be used to play movies. Can be either omxplayer or

# hello_video. omxplayer can play common formats like avi, mov, mp4, etc. and

# with full audio and video, but it has a small ~100ms delay between loops.

# hello_video is a simpler player that doesn’t do audio and only plays raw H264

# streams, but loops seemlessly. The default is omxplayer.

video_player = omxplayer

#video_player = hello_video

# Where to find movie files. Can be either usb_drive or directory. When using

# usb_drive any USB stick inserted in to the Pi will be automatically mounted

# and searched for video files (only in the root directory)。 Alternatively the

# directory option will search only a specified directory on the SD card for

# movie files. Note that you change the directory by modifying the setting in

# the [directory] section below. The default is usb_drive.

file_reader = usb_drive

#file_reader = directory

以#开头的行是注释,将被完全忽略。阅读注释以帮助您了解配置中可用的选项。

两个最常用的更改选项位于文件顶部, video_player 选项和 file_read 选项。

video_player 控制将使用哪种视频播放器播放电影。您可以选择以下两种视频播放器配置选项之一:

omxplayer 是默认的视频播放器,非常适合播放.avi 、。等典型视频格式的视频。 mov等。默认情况下,视频将通过HDMI和模拟音频输出播放声音。但是,在循环播放视频时,omxplayer的延迟很小。有关如何减少此延迟对视频的影响的提示,请参见循环提示部分。

hello_video 是一种功能更有限的视频播放器,但循环非常快且无缝的视频。不幸的是hello_video不支持播放音频,并且需要将电影转换为原始H.264流。 .avi,.mov等格式的视频文件将无法直接播放。您可以在此页上找到如何将视频转换为hello_video使用的格式。

如果您希望从omxplayer更改为hello_video,请更新配置,使其看起来像这样(注意omxplayer行已注释,hello_video行未注释):

下载:文件

复制代码

#video_player = omxplayer

video_player = hello_video #video_player = omxplayer

video_player = hello_video

file_reader 控制在USB驱动器或Raspberry Pi上的目录中找到视频的位置。同样,您可以选择以下两个选项之一:

usb_drive 是默认选项,它将在所有连接的USB驱动器中搜索电影。您可以插入USB驱动器,它将自动搜索要播放的电影。

目录将在Raspberry Pi上的单个目录中搜索电影。如果您无法将USB驱动器连接到Raspberry Pi,则此功能很有用。

如果您希望从usb_drive更改为目录,请更新配置,如下所示:

下载:文件

复制代码

#file_reader = usb_drive

file_reader = directory #file_reader = usb_drive

file_reader = directory

要选择将用于电影的目录,请向下滚动到配置的这一部分并更改 path 配置的值:

下载:文件

复制代码

# Directory file reader configuration follows.

[directory]

# The path to search for movies when using the directory file reader.

path = /home/pi # Directory file reader configuration follows.

[directory]

# The path to search for movies when using the directory file reader.

path = /home/pi

完整配置文件中还有更多设置可以更改视频循环器的行为和外观,例如它是否在屏幕上打印消息,背景颜色等等。 。更改这些设置并不常见,但是您可以通读配置中的注释以了解有关它们的更多信息。

完成配置文件的编辑后,应保存该文件,然后从中卸下micro SD卡您的计算机,然后将卡插入Raspberry Pi。启动Raspberry Pi,视频循环器应加载更新的配置。

禁用视频循环播放器

一旦启动Raspberry Pi,安装的视频循环播放器将自动运行。如果您想停止或禁用视频循环播放器,则可以使用一些选项。

要临时停止视频循环播放器,请在终端/SSH会话中连接到Raspberry Pi(您可以使用上述提到的Pi Finder在安装中)并运行以下命令:

下载:文件

复制代码

sudo supervisorctl stop video_looper sudo supervisorctl stop video_looper

片刻之后,视频循环播放器应停止播放电影并退出。在重新启动Raspberry Pi之前,TVideo Looper不会再次运行。

要永久禁用视频循环器,即为了防止其再次启动,可以运行一个小的脚本包含在视频循环器代码中。在终端/SSH会话中连接到Raspberry Pi,然后导航到下载video_looper的文件夹。如果遵循本指南中的安装步骤,请运行:

下载:文件

复制代码

cd pi_video_looper cd pi_video_looper

现在通过执行以下命令来运行禁用脚本:

下载:文件

复制代码

sudo 。/disable.sh sudo 。/disable.sh

请不要担心,如果显示一条错误消息,表明视频循环器已经停止(如果禁用了视频循环器,则可能会发生这种情况)。运行上述脚本后,视频循环器将被禁用,并且不应在启动时运行。

要再次启用视频循环器,只需再次运行安装步骤。

用于循环播放视频的提示

以提高性能并实现无缝的视频循环播放,请记住以下一些提示:

如果您有多个视频,请将它们全部合并为一个视频。与循环播放多个视频相比,循环播放单个视频要快一些,并且无缝得多(会有短暂的暂停,黑屏显示多个视频)。您可以使用iMovie之类的视频编辑工具将多个视频合并为一个较长的视频,甚至可以在交叉渐变,划像等视频之间添加过渡效果。请确保从 H.264视频中的编辑程序中导出电影。 格式。

使用相同的图像开始播放和结束电影,并淡入音频。这样,当视频循环播放到开始时,如果延迟或打ic很小,就不会引起注意。或者,将电影的结尾和电影的开头作为剪辑的自然点,以便看起来视频直接从结尾流回到开头。

如果需要绝对最无缝的循环的视频(遗憾的是不支持音频),请考虑更改为hello_video视频播放器。该视频播放器只能播放原始H.264视频,不能播放音频,但是它可以循环播放而不会出现明显的延迟。有关更改为hello_video的详细信息,请参见配置部分;有关如何将视频转换为所需格式的详细信息,请参见hello_video页面。

关闭Raspberry Pi

一旦启动并运行了视频循环播放器,您可能会好奇关闭您的Raspberry Pi。 请不要轻易拔出电源线,因为您很可能会损坏Pi的SD卡,并且需要重新安装完整的操作系统和视频循环器! 相反,您应该彻底关闭Pi,以免破坏操作系统。

要完全关闭Pi,您可以使用安装软件的Pi Finder工具。像安装时一样运行Pi Finder,然后找到Raspberry Pi。然后在Pi Finder中单击Shutdown按钮,然后您的Pi应关闭。电路板上的绿色指示灯停止闪烁并且红色指示灯稳定点亮后,您可以安全地断开Pi的电源线。

再次使用,除非您绝对不能避免,否则不要突然断开电源无需先将Raspberry Pi彻底关闭即可!

omxplayer

视频循环播放器使用的默认视频播放器是omxplayer。这是一款出色的通用视频播放器,可将视频解码工作转移到Pi的GPU上,以便可以在Raspberry Pi 1和Pi 2上渲染720p甚至1080p的视频。

要使用omxplayer,您需要确保您的视频使用H.264编解码器编码,并且文件格式为.avi,.mov,.mkv,.mp4或.m4v。如果您有其他格式的视频或无法播放,则可以使用一些免费工具轻松地将其转换为H.264视频。

要将omxplayer可以播放的视频转换为H.264,我建议使用Handbrakevideo转码器工具。该工具可免费用于Windows,Mac和Linux计算机,并且具有相对简单的界面。

要使用Handbrake,请在安装后打开该程序,然后将显示以下内容:

点击左上方的来源,然后加载视频以查看诸如尺寸,帧速率,编码等。默认情况下,Handbrake的常规编码预设效果很好,但我建议您调整一些设置以提高质量并减少循环播放短视频的问题。

加载视频后点击视频标签,然后将设置调整为:

RF = 18

配置文件=高

级别= 5.0

下面是一个示例:

输入新的目标文件名,然后按顶部的开始按钮将视频转码为.m4v文件。

请注意,如果您的计算机的CPU速度较慢或视频的长度较长,则视频转码可能会花费一些时间。

一旦完成手摇转码,将文件复制到USB驱动器,然后尝试用视频循环器播放它。

omxplayer版本

请注意,视频循环播放器安装的omxplayer版本实际上是原始代码的分支,并且旨在帮助减少循环播放单个视频时的延迟。您无需担心如何安装或使用此更新的omxplayer,因为视频循环播放器安装脚本会自动处理所有事情。

将来,主要的omxplayer项目可能会集成这些更改。请注意,如果您是手动安装视频循环播放器,还是想对其进行修改和扩展,则需要使用上面的分叉omxplayer代码。

hello_video

可以与Raspberry Pi一起使用的另一个视频播放器是hello_video。该播放器基于Raspberry Piso附带的示例视频播放代码,它没有很多功能,但是循环播放视频的速度非常快。

hello_video的一个主要限制是它不支持播放视频中的声音。

hello_video的另一个限制是,它要求视频必须为原始H.264流格式。 您不能为hello_video提供.avi,.mov等文件!。但是,使用freeffmpegtool将视频转换为hello_video所需的格式非常简单。

要进行转换包含ffmpeg的视频,请首先下载并安装适用于您的平台的ffmpeg(支持Windows,Mac和Linux)。 ffmpeg是一个命令行工具,因此您需要在计算机上打开一个终端并导航到包含视频的目录。然后运行以下命令:

下载:文件

复制代码

ffmpeg -i input_file.avi -vcodec copy -an -bsf:v h264_mp4toannexb output_file.h264 ffmpeg -i input_file.avi -vcodec copy -an -bsf:v h264_mp4toannexb output_file.h264

其中 input_file.avi 是要转换的视频的名称(不必担心ffmpeg几乎支持所有视频格式,因此您可以将其发送为.avi,.mov,.mkv,.mp4,m4v等), output_file.h264 是输出文件的名称。当将hello_video与视频循环器配合使用时,请确保将.h264扩展名保留在输出文件上。

在ffmpeg完成运行后(通常该操作非常快,因为它只是提取H.264流)将输出的.h264文件复制到USB驱动器,确保将视频循环播放器配置为使用hello_video,然后尝试播放视频。您应该在循环播放期间看到无延迟的出色视频播放。

hello_video版本

与omxplayer一样,视频循环播放器使用的hello_video版本也是从原始代码派生的特殊版本。创建此分叉的目的是将hello_video变成可以与所有其他示例代码分开安装的应用程序,并向该程序添加一个简单的循环选项。除非您想深入了解源代码,否则不必担心此分支版本的细节-视频循环播放器的安装脚本将处理所有事情!
责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 播放机
    +关注

    关注

    0

    文章

    23

    浏览量

    22243
  • 树莓派
    +关注

    关注

    113

    文章

    1641

    浏览量

    104768
收藏 人收藏

    评论

    相关推荐

    【米尔-瑞米兼容树莓扩展模块-试用体验】用视频来了解这块生态板_米尔-瑞米兼容树莓扩展模块

    今天为大家展示一下初始开发板_米尔-瑞米兼容树莓扩展模块, 米尔-瑞米兼容树莓扩展模块介
    发表于 04-29 11:51

    【米尔-瑞米兼容树莓扩展模块-试用体验】初始开发板_米尔-瑞米兼容树莓扩展模块

    收到米尔-瑞米兼容树莓扩展模块几天了,今天抽时间给大家介绍一下这块生态板,让大家有对这块米尔-瑞米兼容树莓
    发表于 04-29 11:42

    树莓都有哪些功能,是用什么编程的?

    怎么学习树莓树莓和传统单片的区别是哪些,如果有了树莓
    发表于 11-09 07:51

    树莓和单片怎么通信?

    树莓和单片怎么通信求大神解答?
    发表于 11-08 07:13

    树莓和51单片的主要区别是什么?

    树莓和51单片的主要区别是什么
    发表于 11-01 07:51

    树莓烧录后死机怎么办?

    树莓烧录后死机怎么办
    发表于 10-24 08:06

    树莓如何调整SD卡的分区大小?

    树莓如何调整SD卡的分区大小
    发表于 10-24 06:23

    如何用树莓学习Linux内核源码?

    怎么用树莓学习Linux内核源码?​
    发表于 10-20 07:09

    树莓Python编程指南分享

    树莓python编程指南
    发表于 10-07 08:43

    树莓传感器教程

    树莓传感器教程
    发表于 10-07 07:13

    树莓的15个应用

    树莓15个应用
    发表于 10-07 06:42

    树莓3树莓4原理图分享

    提供了树莓3、树莓3B、树莓4版本的原理图
    发表于 09-27 07:58

    基于树莓的嵌入式Linux开发教学

    + 虚拟环境 + 交叉编译 + 驱动编程 + 应用层编程 ”开发链可以深入理解和控制嵌入式 Linux 系统,但因其复杂性而更适合需要定制 Linux 内核与驱动的精英开发、精英教育或研究者。树莓
    发表于 09-21 07:09

    如何将host上的bgr planar cv::Mat变成host上的BGR packed cv::Mat?

    如何将host上的bgr planar cv::Mat变成host上的BGR packed cv::Mat?
    发表于 09-19 07:33

    树莓派音频视频播放

    树莓派音频视频播放
    的头像 发表于 06-21 11:41 430次阅读