Raspberry Pi:在mkfifo管道中播放多个视频文件

时间:2017-01-19 02:18:46

标签: linux ffmpeg raspberry-pi raspbian omxplayer

我有2个文件,test.mp4和test2.mp4,我想同时玩,中间没有明显的突破。目前我正在使用

mkfifo test
cat test.mp4 > test &
cat test2.mp4 > test &
omxplayer test

然而,当我这样做时,omxplayer只返回数据并且不播放该文件。但是如果我只是将一个文件放入管道中,则omxplayer会正常显示它。我也尝试在ffmpeg中使用copy命令,这也只是返回数据,不播放文件。

我知道我可以将两个文件连接在一起,但这不适用于我的目的,因为我需要能够在omxplayer运行时将文件提供给管道

1 个答案:

答案 0 :(得分:0)

您正在后台运行两只猫,这意味着数据将以随机方式交错,并且omxplayer不太可能理解它。

您的脚本应该是:

mkfifo test
cat test.mp4 test2.mp4 > test &
omxplayer test

但是,即使这样也不适合您的需求,因为只要cat完成,omxplayer会认为输入的结束并且会停止。

你需要这样的东西:

sendvideo() {
  #
  # Code to select file to send
  #
  cat test.mp4
  #
  # Code to select file to send
  #
  cat test2.mp4
  #
  # Loop to select files
  #
  while [ some condition ]; do
    cat somefile
  done
}
# Starts here
mkfifo test
sendvideo > test &
omxplayer test