【问题标题】:Separating Audio and Video Steams分离音频和视频流
【发布时间】:2010-11-14 21:32:24
【问题描述】:

虽然我不确定 Stack Overflow 是否是提出这个问题的最佳地点,但我能想到的最好的方法就是看看我的谷歌技能是如何让我失望的......尽管这个问题并不特定于任何人语言我认为这里的人应该能够帮助我了解概念和理论。

这么说吧……

我见过不少从 youtube 视频中提取音频的服务。看到我对使用视频编程感到好奇,而我不认为实现同样的事情将是一种相当有益且简单的介绍方式。

至于关于这个主题的技术细节,我迷路了。我对视频播放的工作原理没有一个好主意,而且我不知道如何通过编程将这些东西分开。

感谢您的时间和耐心。

【问题讨论】:

    标签: video audio theory


    【解决方案1】:

    您可以通过以下方式对 VLC 应用程序执行此操作:

    只是音频

    vlc --daemon --ttl 7 --ipv4 "/home/user/song.mp3" :sout='#transcode{acodec=mp3,ab-128}:std{access=mmsh,mux=asfh, dst=:3333}' :no-sout-rtp-sap :no-sout-standard-sap :sout-keep

    只是视频

    vlc --daemon --ttl 7 --ipv4 v4l2:///dev/video0 :v4l2-standard=0 :input-slave=alsa:// :sout='#transcode{vcodec=div3,vb= 2000,scale=1,acodec=none}:std{access=mmsh,mux=asfh,dst=:3333}' :no-sout-rtp-sap :no-sout-standard-sap :sout-keep

    【讨论】:

    • 如果你这样做,你会转换音频,导致质量更差。
    【解决方案2】:

    你可以看看TAE,http://github.com/tuna74/TunaAudioExtracter。请记住,TAE 仅转储音频流,仅在必要时进行转码。

    【讨论】:

    • 好的,谢谢...但我一直在寻找它背后的更多理论。虽然我肯定会查看所有这些的源代码,但我猜我将无法完全理解其中的所有内容。但再次感谢,这绝对有帮助。
    【解决方案3】:

    这是一个相当广泛的问题,但我会试一试。基本上有两种方法:

    1. 模拟播放,并以某种方式捕获输出音频。
    2. 下载或窃听从服务器获取原始视频流并将其保存到磁盘。然后,了解容器格式的布局,提取仅编码音频的比特流。

    即使您无法对格式进行逆向工程,也可以实施选项 1,但我认为它不是一个受欢迎的选择,因为它很慢,并且需要再次对音频进行编码,从而可能导致质量下降。所以首选方案2。

    我不知道有关 Adob​​e FLV 流(YouTube 使用的)的详细信息,除了 FLV 是一种将音频/视频信号组合在单个流中的容器格式。您将必须学习如何解析它们(或找到一个可以为您解析的库)。您还需要找到要阅读的 flv 流的 url。为了进行测试,您可以在播放视频后从临时 Internet 文件中读取它。

    【讨论】:

    • 我不太明白这个概念。我认为如果声音是由声卡处理的,它应该以某种方式可以访问,它是......你认为你可以指出我某个地方来阅读这个吗?到目前为止,我什至不知道我要搜索什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2012-02-23
    • 1970-01-01
    相关资源
    最近更新 更多