ffmpeg从某站提取视频、音频、详解
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从某站提取视频、音频、详解相关推荐
- Ffmpeg快速命令使用 Ffmpeg选项详解 Ffmepg格式详解 常见视频文件格式详解
http://www.ffmpeg.com.cn/index.php/%E9%A6%96%E9%A1%B5 Ffmpeg快速命令使用 From Ffmpeg工程组 Jump to: navigatio ...
- ffmpeg / avconv是通用的视频/音频编解码命令行工具
转载自:http://blog.openlg.net/index.php/archives/767 ffmpeg / avconv是通用的视频/音频编解码命令行工具. 通用是既指他们可以处理各种各样的 ...
- 【genius_platform软件平台开发】第五十二讲:Linux系统之V4L2视频驱动详解
V4L2视频驱动详解 刚建的微信群欢迎加入一起学习.讨论: 1. 简介 1.1 视频输入输出设备(video capture device,video output device) 1.2 VBI设备 ...
- WebRTC音视频同步详解
WebRTC音视频同步详解 1 WebRTC版本 2 时间戳 2.1 视频时间戳 2.2 音频时间戳 2.3 NTP时间戳 2 延迟 3 同步 3.1 一张图看懂音视频同步 3.2 音视频相对延迟 3 ...
- html5代码转换为视频,HTML5中的视频代码详解
摘要 腾兴网为您分享:HTML5中的视频代码详解,智学网,云闪付,易推广,小红书等软件知识,以及360win10,流量魔盒,fitbit,上港商城,安卓2.3.7,全民惠,五年级下册英语单词表图片,t ...
- 性能测试之JMeter接口关联【JSON提取器】详解
1.JSON提取器介绍 相信做过自动化测试的朋友经常会遇到这样的场景:我想调用系统中的某个业务接口,但是需要先登录系统.也就是现在很多接口的访问,都是需要登录接口的token做为基础. 在JMeter ...
- 稳扎稳打Silverlight(18) - 2.0视频之详解MediaElement, 开发一个简易版的全功能播放器...
[索引页] [×××] 稳扎稳打Silverlight(18) - 2.0视频之详解MediaElement, 开发一个简易版的全功能播放器 作者:webabcd 介绍 Silverlight 2.0 ...
- 短视频运营详解:抖音变现目前流行的是七种方式之一电商卖货
短视频运营详解:抖音变现目前流行的是七种方式之电商卖货 抖音变现目前流行的是七种方式,电商卖货.广告营销.内容付费.品牌导流.直播变现.IP变现.社群营销. 我们分别来说一下:权威的三方报告提到过,抖 ...
- WebRTC视频JitterBuffer详解
WebRTC视频JitterBuffer详解 1 WebRTC版本 2 概要 3 JitterBuffer结构和基本流程 4 帧完整性 - PacketBuffer 4.1 包缓存 4.2 帧的开始和 ...
最新文章
- KafKa-----acks参数对消息持久化的影响
- 使用openstack构建私有云计算平台
- Hadoop安装记录(伪分布式)
- JNDI配置DataResource代替JDBC连接数据库
- 磁盘的块大小(Block Size)和扇区大小(Sector Size)
- vue监听对象某一个属性
- 思科交换机配置dhcp参数
- 三月提示:提防挂马网站 关注账号安全
- 15种TBProAudio音乐插件合集包 2021最新
- STM8L超低功耗程序编写教学,简单易懂
- SuiteCRM Beans(model)
- 怎样抢注到一个刚过期不久的域名?
- 首开先河 | 脑机接口让这位ALS患者可读可写
- 微信小程序基础功能解析
- 攻防世界——web新手题
- Gartner 2019年EPP(终端防护)魔力象限(Endpoint protection platforms)
- python求语音信号短时能量、短时过零率、语谱图
- java---implements
- SpringBoot集成Elasticsearch7.4 实战(一)
- 2019年海淀区中小学生信息学奥林匹克竞赛的活动方案