ffmpeg从某站提取视频、音频、详解

事件背景

准备链接

第一步安装下载

ffmpeg是开源软件,安装网址http://ffmpeg.org/download.html#build-windows
本人用的windows10系统

打开网址后随便你怎么下载都行,Git、或者直接下等等

按图片输入上述网址也一样

第二步解压安装

下载完成后,解压即可无需安装,但是需要配置path(像Java的JDK一样)

右键我的电脑,高级设置中找到环境变量,中修改path,添加程序文件的bin目录的环境变量
我将程序放在

D:\Program Files\ffmpeg\ffmpeg-2021-01-27

文件夹下那么,配置的path就是

D:\Program Files\ffmpeg\ffmpeg-2021-01-27\bin


配置好后打开cmd
输入ffmpeg -version
显示如下即安装完成

第三步从小破站下载音频视频

我用Chrome浏览器打开,F12进入某个模式如下图

我们“简单分析”一下NetWork很容易发现本视频的媒体文件是
134142927-1-30080与134142927-1-30280两个
一个是视频的图像文件,一个是视频的音源文件,全部都是m4s为后缀的文件


那我们点击我们要下载的图像和音源文件,复制它链接的前部分内容,复制到.m4s就行,然后输入到地址栏进行文件下载
by the way:
可以看到30280与30080结尾的文件很多,我们随便下哪个都行,都一样


可以看到,下载完成的文件应该是相对来讲一大一小两个文件,本视频时长3分钟多,一个在60+MB大小,一个在4.5MB大小
根据常理我们判断,较大的文件是图像文件,较小的文件是音源文件

第四步ffmpeg命令

下载好的视频尽量放在一个特定的文件夹,方便操作,不然还得输入绝对路径
我放在了D:/Temp下

在地址栏输入cmd打开命令

ffmpeg -i 30080.m4s -i 30280.m4s -codec copy video.mp4

将文件合并为视频文件,(将视频文件放在前,音源文件放在后)


完成后视频已经可以打开了

可以看到能够正常播放

继续输入命令

ffmpeg -i video.mp4 -vn  -acodec libmp3lame -ac 2 -qscale:a 4 -ar 48000  audio.mp3

将video.mp4的音源提取成audio.mp3

可以看到能够正常播放

20221231日补充

补充第三步,发现直接访问m4s的链接会被返回404,不能直接下载了;经过一系列的搜索终于找到了解决方案 就是通过写代码java的io流来实现

package com.testdownbili.demo1.bil;import java.io.*;
import java.net.URL;
import java.net.URLConnection;public class DownloadM4sApplet {public static void main(String[] args){// 第三步的m4s地址String videoUrl="https://xy49x86x255x16xy.mcdn.bilivideo.cn:4483/upgcxcode/64/99/517569964/517569964_x2-1-30077.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90Wxxxxxx";// 文件名称 建议和链接保持一致String name="517569964_x2-1-30077.m4s";downloadMovie(videoUrl,name);}public static void downloadMovie(String BLUrl, String fileName) {InputStream inputStream = null;try {URL url = new URL(BLUrl);URLConnection urlConnection = url.openConnection();urlConnection.setRequestProperty("Referer", "https://www.bilibili.com/video/BV"); // 填需要爬取的bv号urlConnection.setRequestProperty("Sec-Fetch-Mode", "no-cors");urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36");urlConnection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");urlConnection.setConnectTimeout(10 * 1000);inputStream = urlConnection.getInputStream();} catch (IOException e) {e.printStackTrace();}//定义路径String path = "D:\\Temp\\biliDown\\" + fileName;File file = new File(path);int i = 1;try {BufferedInputStream bis = new BufferedInputStream(inputStream);BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));byte[] bys = new byte[1024];int len = 0;while ((len = bis.read(bys)) != -1) {bos.write(bys, 0, len);}bis.close();bos.close();} catch (Exception e) {e.printStackTrace();}}
}

就下载成功了

下载成功后再执行上述步骤即可

ffmpeg从某站提取视频、音频、详解相关推荐

  1. Ffmpeg快速命令使用 Ffmpeg选项详解 Ffmepg格式详解 常见视频文件格式详解

    http://www.ffmpeg.com.cn/index.php/%E9%A6%96%E9%A1%B5 Ffmpeg快速命令使用 From Ffmpeg工程组 Jump to: navigatio ...

  2. ffmpeg / avconv是通用的视频/音频编解码命令行工具

    转载自:http://blog.openlg.net/index.php/archives/767 ffmpeg / avconv是通用的视频/音频编解码命令行工具. 通用是既指他们可以处理各种各样的 ...

  3. 【genius_platform软件平台开发】第五十二讲:Linux系统之V4L2视频驱动详解

    V4L2视频驱动详解 刚建的微信群欢迎加入一起学习.讨论: 1. 简介 1.1 视频输入输出设备(video capture device,video output device) 1.2 VBI设备 ...

  4. WebRTC音视频同步详解

    WebRTC音视频同步详解 1 WebRTC版本 2 时间戳 2.1 视频时间戳 2.2 音频时间戳 2.3 NTP时间戳 2 延迟 3 同步 3.1 一张图看懂音视频同步 3.2 音视频相对延迟 3 ...

  5. html5代码转换为视频,HTML5中的视频代码详解

    摘要 腾兴网为您分享:HTML5中的视频代码详解,智学网,云闪付,易推广,小红书等软件知识,以及360win10,流量魔盒,fitbit,上港商城,安卓2.3.7,全民惠,五年级下册英语单词表图片,t ...

  6. 性能测试之JMeter接口关联【JSON提取器】详解

    1.JSON提取器介绍 相信做过自动化测试的朋友经常会遇到这样的场景:我想调用系统中的某个业务接口,但是需要先登录系统.也就是现在很多接口的访问,都是需要登录接口的token做为基础. 在JMeter ...

  7. 稳扎稳打Silverlight(18) - 2.0视频之详解MediaElement, 开发一个简易版的全功能播放器...

    [索引页] [×××] 稳扎稳打Silverlight(18) - 2.0视频之详解MediaElement, 开发一个简易版的全功能播放器 作者:webabcd 介绍 Silverlight 2.0 ...

  8. 短视频运营详解:抖音变现目前流行的是七种方式之一电商卖货

    短视频运营详解:抖音变现目前流行的是七种方式之电商卖货 抖音变现目前流行的是七种方式,电商卖货.广告营销.内容付费.品牌导流.直播变现.IP变现.社群营销. 我们分别来说一下:权威的三方报告提到过,抖 ...

  9. WebRTC视频JitterBuffer详解

    WebRTC视频JitterBuffer详解 1 WebRTC版本 2 概要 3 JitterBuffer结构和基本流程 4 帧完整性 - PacketBuffer 4.1 包缓存 4.2 帧的开始和 ...

最新文章

  1. KafKa-----acks参数对消息持久化的影响
  2. 使用openstack构建私有云计算平台
  3. Hadoop安装记录(伪分布式)
  4. JNDI配置DataResource代替JDBC连接数据库
  5. 磁盘的块大小(Block Size)和扇区大小(Sector Size)
  6. vue监听对象某一个属性
  7. 思科交换机配置dhcp参数
  8. 三月提示:提防挂马网站 关注账号安全
  9. 15种TBProAudio音乐插件合集包 2021最新
  10. STM8L超低功耗程序编写教学,简单易懂
  11. SuiteCRM Beans(model)
  12. 怎样抢注到一个刚过期不久的域名?
  13. 首开先河 | 脑机接口让这位ALS患者可读可写
  14. 微信小程序基础功能解析
  15. 攻防世界——web新手题
  16. Gartner 2019年EPP(终端防护)魔力象限(Endpoint protection platforms)
  17. python求语音信号短时能量、短时过零率、语谱图
  18. java---implements
  19. SpringBoot集成Elasticsearch7.4 实战(一)
  20. 2019年海淀区中小学生信息学奥林匹克竞赛的活动方案

热门文章

  1. linux h264分析器,H.264码流分析器
  2. java秒杀方案总体思路
  3. 全志 a10 linux,全志A10处理器参数介绍
  4. Win10禁止应用独占麦克风
  5. df,lsblk,fdisk命令区别
  6. Windows 2000 安全更新程序 (KB980232)
  7. 程序设计-在校整理-03 排班系统
  8. 新闻发布系统,SQLHelper重构
  9. 【操作系统】Oranges学习笔记(四) 第五章 内核雏形
  10. 百度工具问题以下对URL规则的阐述,哪些是错误的