ffmpeg的使用
编辑于 2023-11-06 21:59:42 阅读 1281
应用场景1
ffmpeg -i http://xxx.com/index.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4
通过浏览器看视频的时候,想下载下来。打开开发者工具,network,如果看到浏览器在不断的加载.ts
结尾的文件,这时候筛选下m3u8
,如果找到了,就可以用这种方法下载
应用场景2
#mov转mp4
ffmpeg -i 123.mov -vcodec libx264 -preset fast -crf 20 -y -vf "scale=1280:-1" -acodec libmp3lame -ab 128k new.mp4
#webm转mp4
ffmpeg -i input.webm -crf 17 -c:v libx264 output.mp4
#压缩mp4,适合画面不大变化的
ffmpeg -i input.mp4 -r 10 -b:a 32k output.mp4
#从mp4视频中提取出音频
ffmpeg -i input.mp4 -acodec pcm_s16le -f s16le -ac 1 -ar 16000 -f wav output.wav
#视频缩略图(视频所有帧图片)
ffmpeg -i input.mp4 -f image2 %05d.jpg
#输出指定时间的图片
ffmpeg -i input.flv -ss 00:00:02 -frames:v 1 out.png
#mp4转m3u8
ffmpeg -i ./aaa.mp4 -hls_time 10 -hls_list_size 0 -hls_segment_filename ./aaa_%05d.ts ./aaa.m3u8
#-hls_time 设置每片的长度,单位为秒
#-hls_list_size n: 保存的分片的数量,设置为0表示保存所有分片
#-hls_segment_filename :段文件的名称,%05d表示5位数字
使用视频文件直播
本地视频文件
以~/Movies/11月5日.mp4
为例
获取推流地址
以哔哩哔哩为例:直播中心 -> 我的直播间 -> 开播设置
- 服务器地址:
rtmp://live-push.bilivideo.com/live-bvc/
- 串流密钥:
?streamname=live_3333&key=777&schedule=rtmp&pflag=1
推流地址=服务器地址+串流密钥,即:rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_3333&key=777&schedule=rtmp&pflag=1
开始直播
cuiwei@weideMacBook-Pro ~ % ffmpeg -re -i ~/Movies/11月5日.mp4 -vcodec copy -acodec aac -b:a 96k -f flv "推流地址"
参数说明
“-vcodec copy” 这种-
+ 字母的 就是一个完整的配置项 ‘-配置key 配置value’
-re
就是real-time 直播必须带这参数-i "xxx.mp4"
就是input 媒体输入-stream_loop -1
循环播放-vcodec copy
就是video decode 视频解码 copy就是沿用输入视频的解码方式-acodec aac
就是audio decode 音频解码 aac是音频的解码方式-b:a 96k
就是bit rate 单位是 kb/s-f flv
就是force format flv
强制输出flv格式