首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ffplay播放音频文件列表

如何使用ffplay播放音频文件列表
EN

Unix & Linux用户
提问于 2016-04-08 23:08:13
回答 3查看 10.9K关注 0票数 5

有许多音频和视频播放器,但我更喜欢使用一个工具的许多用途。所以我想用ffplay作为音频和视频播放器。

要播放文件,命令如下所示。

代码语言:javascript
复制
ffplay path_to_audio_file.mp3

很好,但是如何播放音频文件列表或视频列表呢?

我试着用:

代码语言:javascript
复制
ffplay *.mp3

但没有结果。它给出了以下错误:

代码语言:javascript
复制
Argument 'audiofileB.mp3'  provided as input filename, but 'audiofileA.mp3' was already specified.
EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2016-04-08 23:52:33

ffplay似乎只支持单个输入文件,因此您需要使用代码来循环输入文件的列表(可能还需要对它们进行洗牌);疯狂地假设coreutils (用于shuf),可能类似于:

代码语言:javascript
复制
find musicdir -type f -name "*.mp3" | shuf | while read f; do ffplay -autoexit -- "$f"; done

当然,如果文件名中有空格或换行符,这将非常糟糕。

(我现在的音乐播放器非常类似,find ~/music -type f -name "*.mp3" | mpg123 --shuffle -Z --list -)

票数 7
EN

Unix & Linux用户

发布于 2022-04-25 22:45:15

我从这个https://ubuntuforums.org/showthread.php?t=2068478上找到的

代码语言:javascript
复制
for f in *.mp3 ; do ffplay -autoexit "$f"; done
票数 3
EN

Unix & Linux用户

发布于 2017-04-23 14:37:22

我在Lazarus/FPC中编写FFplay图形用户界面时发现了这个线程。它已经可以播放一个删除的文件列表并跳到下一个/前一个文件,但是我不得不终止ffmpeg进程并每次创建一个新的文件。我试着增加播放整个文件列表的能力。到目前为止,我找到的最简单的解决方法当然是使用-autoexit,并使用这个Pascal代码创建一个播放列表文件:

代码语言:javascript
复制
begin
      AssignFile(tfOut, C_FNAME);
      try
        rewrite(tfOut);
        for i:= 0 to Fichiers.Items.Count - 1 do
        if Fichiers.Selected[i] then
        begin
          writeln(tfOut, 'file ' + #39 + conv(Fichiers.Items[i]) + #39)
        end;
        CloseFile(tfOut);
      except
        on E: EInOutError do
        ShowMessage ('File error')
      end;
  end;

然后用这样的方式阅读:

代码语言:javascript
复制
'ffplay -f concat -safe 0 -i flist.txt -autoexit'

这与我用来连接FFMPeg文件的语法相同。

如果文件是…图像文件,我现在正在寻找一种适当的方法来添加延迟

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/275257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档