【问题标题】:ffmpeg and python usageffmpeg和python的使用
【发布时间】:2014-02-24 00:32:30
【问题描述】:

我的电脑上有一个 ffmpeg 设置,它使用以下代码流式传输 mp3:

ffmpeg -f dshow -i audio="Input device" -c:a libmp3lame -f mpegts udp://192.168.1.2:7777

另外我有一个服务器,我希望我的 python 脚本在服务器上运行 24/7,并在每次打开/关闭 pc get 时开始/停止将流写入 mp3 文件。每次打开电脑时我都需要新文件(例如使用时间和日期作为文件名)以绕过覆盖。使用 python 的 subprocess 模块和 ffmpeg 我可以像这样在我的服务器上保存文件:

subprocess.call('ffmpeg -y -i udp://192.168.1.2:7777 -acodec copy output.mp3')

但是我需要条件,什么时候开始录制(监听 7777 端口是否正在接收数据或类似的东西),甚至可以使用 python 实现这样的事情吗? 附言对不起我的英语不好。

【问题讨论】:

    标签: python ffmpeg


    【解决方案1】:

    您将遇到的基本问题是 UDP 是一种无连接协议。换句话说,很难确定“连接”何时不再存在(发送数据的程序已经消失)。

    如果你切换到 TCP,你应该能够编写一个 Python 脚本,在循环中运行你的 subprocess.call(),每次都给它一个新的文件名。每次 PC 关闭并且 TCP 连接关闭时,服务器上运行的 ffmpeg 应该(您需要对其进行测试以确保)退出,并且循环将使用新的输出文件名开始一个新的循环。

    【讨论】:

      猜你喜欢
      • 2012-03-03
      • 2021-05-25
      • 2017-03-02
      • 2021-11-23
      • 2011-02-08
      • 2013-12-06
      • 2012-01-18
      • 2020-01-10
      相关资源
      最近更新 更多