免责声明:这不是一个实际的问题,而是“以问答式分享您的知识”。
所以,我在Raspberry Pi上运行Xbmc,我很难理解我可以实际使用什么,不能做什么。
我读到RPi可以播放H.264编码的视频,但是我只能找到x264编码的视频。那也行吗?如果是这样,为什么某些文件可能无法工作?
#1 楼
关于H.264(带点)的实际含义,似乎存在很多误解。因此,引自Wikipedia:H.264 / MPEG-4 Part 10或AVC(高级视频编码)是
视频压缩的标准,目前是其中之一最常用的
格式[...]
这里延伸的重要部分是它只是一个标准。这意味着视频实际上并未使用H.264进行编码,而是使用了符合H.264标准的编解码器。最常见的一种是x264(小写的x,没有点):
x264是一个免费的软件库,用于将视频流编码为H.264 / MPEG-4
AVC格式。
[...]
x264与其他H.264编码器相比具有许多功能。
H。 264是一种接口,而x264是该接口的实现(具有实际功能)。
,Pi会很好地播放x264编码的文件。
然后为什么某些x264编码的文件播放不流畅,却每4-6秒钟停止播放一次(取决于GPU-Ram的数量)?
大多数情况下都是声音。由于x264是用于高清视频文件的编码器,因此大多数文件都带有数字高品质音轨,该音轨使用DTS编解码器。
(目前)Pi尚无法对DTS轨道进行硬件解码,而它的CPU不够强大。在官方论坛上有关于此问题的讨论,值得研究。
要找出适合您的情况,可以使用
mediainfo
-tool(必须安装,软件包名称)取决于您的发行版):[tv@raspberry]$ mediainfo some_random_movie.mkv
# Shortened output!
Audio #2
ID : 3
Format : DTS
Format/Info : Digital Theater Systems
Codec ID : A_DTS
您现在有两个选择:
购买具有DTS功能的接收器(也许是您的电视也可以做到吗?)并在Xbmc(或您使用的任何播放器)中启用“通过”(最后一点)。
将DTS轨道转换为AC3,可以通过(更快) )或CPU解码。
要了解您的接收器(插入HDMI电缆的设备)的功能,请使用
tvservice
-tool(它不在PATH中,因此您需要完整的路径):[tv@raspberry ~]$ /opt/vc/bin/tvservice -a
PCM supported: Max channels: 2, Max samplerate: 48kHz, Max samplesize 24 bits.
AC3 supported: Max channels: 6, Max samplerate: 48kHz, Max rate 640 kb/s.
如您所见,我当前的接收器能够解码PCM和AC3(不是DTS)。
我对此问题的解决方案是将音频转换为DTS到AC3的曲目。这是一个很小的单行代码,它可以将
infile.mkv
中的所有音频流都转换为AC3,并且不触摸视频:ffmpeg -i infile.mkv -map 0 -codec:v copy -codec:s copy -codec:a ac3 outfile.mkv
avconv:
avconv -i infile.mkv -map 0 -vcodec copy -acodec ac3 -ab 256k outfile.mkv
注意:上面的命令还为生成的AC3编码的音频流(似乎是必要的)。 256kbps
是相当不错的(大多数DVD使用192kbps),但是您可能想
增加/减少它。
幸运的是,这只需要5分钟左右(当然取决于您的硬件)。另外,您的文件会变小,如果您不是发烧友,您将听不到任何区别。
仍然无法播放1080p FullHD电影,屏幕变黑几秒钟没有声音,但视频播放似乎仍在继续。电影在带有AC3轨道的MKV容器中经过H.264编码。这是什么问题?
很可能,影片文件没有问题,但是Xbmc设置没有问题。就我而言,问题是Xbmc的“刷新率”。默认情况下设置为60Hz。对于720p和任何其他小型视频文件,Pi似乎没有问题,但是1080p文件会导致上述问题。
将刷新率降低到小于60Hz(至少电影足以达到24Hz)。这里有两个选项:
全局Xbmc(包括Xbmc本身):
System -> Settings -> System -> Video output -> Refresh rate
仅电影(由视频文件确定):
System -> Settings -> Video -> Playback -> Adjust display refresh rate to match video
降低刷新率后,1080p电影也可以正常播放。
评论
RaspberryPi.stackexchange.com上的最佳答案很有可能。
– Vincent P
13年1月29日在4:52
哦,我也看到ffmpeg甚至可以用于RPI。 sudo apt-get安装ffmpeg。您是否在RPI上尝试过?它运作良好吗?
– Vincent P
13年1月29日,下午4:55
@Raphael不,不是:stackoverflow.com/a/9477756/717341
–卢卡斯·努斯(Lukas Knuth)
13年3月15日在11:49
@Raphael取决于您的发行版。在ArchLinux中,我没有看到这个问题。
–卢卡斯·努斯(Lukas Knuth)
13年3月15日在11:53
@LukasKnuth很好的答案,除了ffmpeg并不被其他人偏爱。 avconv是一个叉子。
–aergistal
2015年9月19日在20:29