简介 目录 评价 推荐
  • 艶吇 2021-05-04

    小结

    • 音视频流的分离开与合并

    • 多媒体文件的裁剪与拼接

    • 多媒体格式互转

    • FFmpeg filter

    -------------------------------

    avfilter

    • 视频画中画

    • 音频混音/视频混屏

    • 视频转场

    • 增加/删除水印

    • 音视频倍速播放

    学习音视频的难点

    • 基础不牢地动山摇

    • I/P/B帧,GOP

    • 采样率,采样大小,通道数

    • 以上这些是学习音视频的必由之路

    音视频重要的库

    • FFmpeg 音视频必须的库

    • WebRTC 网络传输


    音视频的未来

    • 音视频开发特别有意思

    • 具有广阔的未来

    与人工智能会紧密结合

    0赞 · 0采集
  • 艶吇 2021-05-04

    ffmpeg -i new_5.mp4 -i new_5.mp4 -filter_complex "[0:a][1:a]amix=inputs=2:duration=shortest:weights='0.1 0.9'" amixer.aac

    0赞 · 0采集
  • 艶吇 2021-05-04


     视频速度加倍

    ffplay -i h.mp4 -an -vf "setpts=PTS*0.5"

    音频速度加倍

    ffplay -i h.mp4 -vn -af "atempo=2.0"

    音频速度减半

    ffplay -i h.mp4 -vn -af "atempo=0.5"


    音视频同步增速

    ffmpeg -i h.mp4 -filter_complex "[0:v]setpts=PTS*0.5[vo];[0:a]atempo=2.0[ao]" -map "[vo]" -map "[ao]" speed2.mp4

    0赞 · 0采集
  • 艶吇 2021-05-04

    前提条件:把各个视频的分辨率搞成一样的

    ffmpeg -i new_5.mp4 -i new_5.mp4 -i new_5.mp4 -filter_complex "[0:v]fade=t=out:st=18:d=3[v0];[1:v]fade=t=in:st=0:d=3[tmp];[tmp]fade=t=out:st=18:d=3[v1];[2:v]fade=t=in:st=0:d=3[v2];[v0][v1][v2]concat=n=3:v=1:a=0[vo];[0:a][1:a][2:a]concat=n=3:v=0:a=1[ao]" -map "[vo]" -map "[ao]"   r.mp4

       三个多媒体文件的渐进渐出

    0赞 · 0采集
  • 艶吇 2021-05-04

    四个视频合在一起的命令

    ffmpeg -i new_5.mp4 -i  new_5.mp4 -i new_5.mp4 -i new_5.mp4 -filter_complex "nullsrc=size=640*480[base];[0:v]setpts=PTS-STARTPTS,scale=320:240[a];[1:v]setpts=PTS-STARTPTS,scale=320:240[b];[2:v]setpts=PTS-STARTPTS,scale=320:240[c];[3:v]setpts=PTS-STARTPTS,scale=320:240[d];[base][a]overlay=shortest=1[tmp1];[tmp1][b]overlay=shortest=1:x=320[tmp2];[tmp2][c]overlay=shortest=1:y=240[tmp3];[tmp3][d]overlay=shortest=1:x=320:y=240" new.mp4

     

    0赞 · 0采集
  • 艶吇 2021-05-03

    实现画中画

    ffmpeg -i killer_d.mp4 -i video.mpt -fliter_complex "[1:v]scale=160:90[out];[0:v][out]overlay=W-w-30:10" new.mp4

    1代表第2个输入,v代表视频部分

    0赞 · 0采集
  • 艶吇 2021-04-26

    FFmpeg滤镜种类

    • 简单滤镜 -vf

    • 复杂滤镜 -filter_complex

    Overlay滤镜

    • 最常使用的滤镜

    • 以第一个输入为背景,后面的叠加到背景上

    滤镜描述符规则

    • 逗号表示前一个输出是后一个输入

    • 分号表示两个滤镜是并列关系 

    • 冒号用于区分不同的参数

    例子

    • 直接播放

    ffplay -i new_5.mp4 -vf "movie=1.jpeg,scale=64:48[water];[in][water]overlay=30:10"

    movie是一个关键字, water代表水印,in代表背景,离左边30像素,离上面10个像素。

    • 先转换成文件,再播放文件

    ffmpeg -i new_5.mp4 -vf "movie=1.jpeg,scale=64:48[water];[in][water]overlay=30:10" video_w.mp4

    ffplay video_w.mp4

    0赞 · 0采集
  • 艶吇 2021-04-26

    ffmpeg -f image2  -r 1 -i i-%03d.jpg -r 1 video.mp4

    -f:指图片格式,一般为image2或image1

    ffprobe output-003.jpg

    转换图片为相同大小,再把图片转换为视频

    l

    ffmpeg -f image2 -r 2  -i i-%03d.jpg -r 24 video3.mp4

    ffprobe video3.mp4

    如果每秒输入两张,如果已存在20张图片,那么就会变为10s的视频。24fps, 每秒采用12张图片。

    0赞 · 0采集
  • 艶吇 2021-04-25

    视频生成图片

    ffmpeg -i new_5.mp4 -r 1 -f image2 output-%03d.jpg

    生成缩略图

    ffmpeg -i new_5.mp4 -r 1 -s 160*90 -f image2 output-%03d.jpg

    查看图片

    open output-001.jpg

    每秒生成0.5帧,即两秒生成一帧

    ffmpeg -i new_5.mp4 -r 0.5 -s 160*90 -f image2 output-%03d.jpg

    0赞 · 0采集
  • 艶吇 2021-04-24

    音视频裁剪

    理论基础

    • I帧

    • P帧

    相对于前一帧的增量,依赖I帧

    • B帧

    相对于前面的I帧和后面的P帧,。。。依赖I帧和P帧

    裁剪方式:

    • 第一种:

    重新解码编码来进行裁剪

    • 第二种:

    在原有的data上直接定位到某一点,然后把数据拿出来

    裁剪时如果不幸定位到B帧上了,就找前一个I帧和后一个I帧开始

    裁剪命令

    • ffmpeg -ss 00:00:00 -t 10 10 -i test.mp4 new_3.mp4 修饰输入文件在没有处理的时候怎么做

    • 一般从第一秒开始都没有问题,因为一般都是从I帧开始的

    • ffmpeg -i test.mp4  -ss 00:00:00 -t 10 10 new_5.mp4 修饰的是输出文件

    • 想裁剪得更准确,一般先解码再重新编码会好点

    GOP

    GOP即Group of picture(图像组)

    0赞 · 0采集
  • 艶吇 2021-04-24

    媒体格式互转

    • MP4转FLV

      ffmpeg -i test.mp4 testflv.flv

      ffplay testflv.flv  会比原视频更模糊,如果不加copy,它采用的策略是向比较小的码率去转化

      ffmpeg -i test.mp4 -c copy testflv2.flv

      ffplay testflv2.flv 相当于复制一次源文件 

    • FLV转TS

           ffmpeg -i test.mp4 -c copy testflv2.ts

    • MP4转MOV

      ffmpeg -i test.mp4 -c copy testflv2.mov

      ffmpeg 一般把高清的转化为低清的,一般不能把低清的转变为高清的,当然通过一些算法来实现的方式就另说了


    0赞 · 0采集
  • 艶吇 2021-04-24

    抽取视频流

    ffmpeg -i  out.mp4 -an -c:v copy new.mp4

    ffplay new.mp4

    抽取音频流

    ffmpeg -i out.mp4 -vn -c:a copy out.aac

    ffplay out.aac

    查看一个音视频属性

    ffprobe out.mp4

    0赞 · 0采集
  • 艶吇 2021-04-24

    抽取音视频流

    • 多媒体文件


    • 音视频轨



    0赞 · 0采集
  • 艶吇 2021-04-24

    安装Ffmpeg的方式

    • 命令安装

      mac:  brew install ffmpeg

      unbuntu: apt install ffmpeg

    • 源码安装

      方法详见:http://avdancedu.com

    0赞 · 0采集
  • 艶吇 2021-04-24

    ffmpeg

    • 音视频编辑 

    • 播放器

    • 音视频转码

    -------------------------------------------

    WebRTC

    • 音视频实时通信

    • 3A处理

    • 网络传输质量

    --------------------------------------------

    Ffmpeg与WebRTC比较

    • Ffmpeg是基础,webRTC也使用它

    • Ffmpeg更多的用于音视频编辑与播放器

    • WebRTC更多的用于音视频实时通信

    0赞 · 0采集
  • 亚希爸爸 2021-03-03
    破热热给
    0赞 · 0采集
  • 慕粉4252596 2021-03-02

    命令安装

    截图
    0赞 · 0采集
  • 慕粉4252596 2020-12-07

    重新编解码裁剪

    时间参数放在前面,是对没有编解码的文件设定的。

    ffmpeg -ss 00:00:00 -t 10 -i output.mp4 new_3.mp4

    时间参数放在后面是对解码后的数据按时间剪裁,更为准确

    ffmpeg -i output.mp4 -ss 00:00:05 -t 10 new_4.mp4


    不重新编解码裁剪

    ffmpeg -i output.mp4 -ss 00:00:05 -t 10 -c copy new_4.mp4

    0赞 · 0采集
  • 慕粉4252596 2020-12-07

    裁剪音视频

    I帧:表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)。又称为内部画面 (intra picture),I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象

    P帧:即Predictive-coded Picture(前向预测编码图像帧)。P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)

    B帧:即Bidirectionally predicted picture(双向预测编码图像帧)。B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别,换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时CPU会比较累。


    截图
    0赞 · 0采集
  • 慕粉4252596 2020-12-07

    多媒体格式转换

    MP4--->FLV

    ffmpeg -i output.mp4 output.flv

    不对文件里面的视频和音频内容更改,直接拷贝,速度快,只是将文件的外衣mp4改为flv而已

    ffmpeg -i output.mp4 -c copy output.flv

    0赞 · 0采集
  • 慕粉4252596 2020-12-06

    音频与视频合流:

    ffmpeg -i new.mp4 -i happy.aac new_1.mp4

    此时如果音频和视频的时长不一致,比如视频时长短,则视频停留最后一帧,音频继续播放,反之亦然。

    为了视频和音频同时同时停止,需要加入shortest参数

    ffmpeg -i new.mp4 -i happy.aac -shortest new_1.mp4

    即合并后的时长等于音频与视频中时长较短的保持一致。

    1赞 · 0采集
  • 慕粉4252596 2020-12-06

    提取音频命令:

    ffmpeg -i output.mp4 -vn -c:a copy output.aac

    -i 表示input输入

    -vn v表示video n表示no 不要视频

    -ca 对音频编码

    copy 不对编码器处理,直接拷贝

    命令完整的含义:对输入的output.mp4 文件进行操作,不要视频,对音频的数据不做修改,直接拷贝输出到output.aac文件中。

    查看文件信息:

    ffprobe output.mp4

    播放文件:

    ffplay output.aac

    同理提取视频命令:

    ffmpeg -i output.mp4 -an -c:v copy new.mp4

    ffplay new.mp4

    0赞 · 0采集
  • 慕粉4252596 2020-12-06

    ffmpeg与WebRTC的比较

    截图
    0赞 · 1采集
  • 慕粉4252596 2020-12-06

    WebRTC的主要用途:

    音视频实时通信

    3A处理(混音消除、降噪、自动增益)

    网络传输质量(一系列解决方案)

    1赞 · 1采集
  • 慕粉4252596 2020-12-06

    ffmpeg的主要用途

    截图
    0赞 · 1采集
数据加载中...