ffmpeg 本人常用命令

索尼相机拍摄的mp4顺时针转90度

不转码,速度快。(注意索尼的文件不能转普通的mp4,要转mov,不然会报错。一定是copy output.mov,不要copy output.mp4,否则会报错!)

ffmpeg -i "D:\Personal\Desktop\2\C0001.MP4" -metadata:s:v:0 rotate=-90 -codec copy output.mov
--逆时针旋转90度
ffmpeg -i input.mp4 -metadata:s:v rotate="90" -codec copy output.mp4
--顺时针旋转90度
ffmpeg -i input.mp4 -metadata:s:v rotate="-90" -codec copy output.mp4

 

其他普通的mp4旋转,可以直接转后辍名mp4。

合并多个视频

有些视频网站会分段加载视频,导致下载器下载到一系列视频。这个时候需要合并这些视频才可以。

可以新建一个filelist.txt的文件,按顺序列出系列视频如下:

file '1.mp4'
file '2.mp4'
file '3.mp4'
file '4.mp4'

通过以下命令,合并成一个视频

ffmpeg -f concat -i filelist.txt -c copy output.mp4

 

字幕转换

经常下载一些网络视频的字幕,如youtube等,字幕文件是webvtt文件,后缀为vtt。ffmpeg也可以将其转化成标准的字幕格式。

ffmpeg -i input.vtt output.ass
ffmpeg -i input.vtt output.srt

 

ffmpeg 将m3u8文件下载成MP4文件

ffmpeg -i 待替换视频地址 -c copy -bsf:a aac_adtstoasc ./生成视频文件名称.mp4
ffmpeg -i https://yuledy.helanzuida.com/20201228/17296_a03b1fe2/1000k/hls/index.m3u8 -c copy -bsf:a aac_adtstoasc ./26.mp4

ffmpeg 将mp3文件转成aac文件

ffmpeg -i xxx.mp3 -acodec aac -strict experimental -ab 128k -ar 16k -ac 2 -y xxx.aac

b站参数:ffmpeg -i 456.mp3 -acodec aac -strict experimental -ab 320k -ar 44.1k -ac 2 -y xxx.aac

参数定义:
ab :码率
ar :采样率
ac :声道

 

以下操作为从input.mp4文件提取音频为output.aac:

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

其中

  • -vn :移除视频
  • -c:a:指定音频编码器
  • copy:直接复制,不经过重新编码

 


音频与视频合并成视频

1. 提取音频
ffmpeg -i input.mp4 -acodec copy -vn out.aac
//acodec :指定音频编码器,copy只拷贝,不做编码
//vn:v代表视频,n代表no,无视频的意思

2. 提取无音视频
ffmpeg -i input.mp4 -vcodec copy -an out.mp4
//vcodec:指定视频编码器,copy只拷贝,不做编码
//an:a代表音频,n代表no,无音频的意思。

3. 音频视频合并(把aac合并到mp4里面。前提条件,mp4是无声视频)
ffmpeg -i out.mp4 -i out.aac -vcodec copy -acodec copy new.mp4
//-vcodec copy :视频只拷贝,不编解码
//-acodec copy : 音频只拷贝,不编解码
//new.mp4 :新生成的文件,文件的长度由两个输入文件的最长的决定

 

FFmpeg直接复制音频与视频流封装成指定格式(复制流)[类似于直接换个容器]

ffmpeg  -i  原始视频.ts  -codec  copy  输出格式.mp4
ffmpeg -y -i test.mp4 -vcodec copy -acodec copy test.mkv

 

ps:yudl只下载音频:youtube-dl -x --audio-format mp3 video_URL

 

 

使用FFmpeg命令给视频文件添加软字幕

添加软字幕这个过程不需要重新编解码,速度非常快。这样实现了不转码,加字幕,且不需要用第三方gui软件,直接通过命令完成。

注意:b站不支持显示软字幕,必须是硬字幕

背景知识

字幕分类

根据字幕信息嵌入到视频中的方式,可以把字幕分为:

  • 软字幕
    • 特点
      • 过程可逆
        • 可以提取出字幕文件,查看字幕源代码
    • 包含
      • 内挂字幕
        • 一般指字幕文件与视频一同封装在MKV文件中,播放时需经过播放器处理解析显示(=VSFilter渲染)
      • 外挂字幕
        • 以单独的字幕文件形式存在,播放时经播放器处理解析显示(=VSFilter渲染)到视频上
  • 硬字幕=内嵌字幕
    • 指字幕被以图形方式硬编码到视频中
      • 变成视频数据本身=视频数据的一部分
    • 特点
      • 过程不可逆
        • 无法再把字幕提取出来
      • 播放时不需要额外的播放器读取解析显示(=VSFilter渲染)字幕

踩坑点:

使用subtitles=xxx路径

或者ass=1.ass路径

经常会报错,可能是路径原因。

例如以下命令

ffmpeg -i end_font.mp4 -vf subtitles=words.srt -y output.mp4

解决方案

 第一步,用ffmpeg命令直接将srt文件转换成ass文件。(srt没样式,ass有样式)

命令如下

ffmpeg -i 1.srt 2.ass

第二步

打开2.ass文件,ass规定了字幕使用何种字体和一些参数。默认是白色字体,黑色描边,16号字体。不做更改也够用。

我一般改一下字体、字体颜色、字号大小。一般的都是黑色阴影描边。比较简约,不花里胡哨。

我一般设置字体为:霞鹜文楷 屏幕阅读版。字体颜色为粉红色b292ee。字号20-22之间。

样式代码为:,霞鹜文楷 屏幕阅读版,20,&Hb292ee,

这些参数都是相邻的。

第三步,将视频与ass文件合并。类似于复制流,且转了格式。

现在的大多电影都使用mkv格式,也有部分使用mp4,mkv格式本身支持字幕轨道,而mp4则需要调用mov_text编码器

注意, -c copy -c:s mov_text 的顺序是非常重要的,因为这是简写。

-i 选项用于指定需要读取的文件,在这里是视频文件与字幕文件(字幕文件 srt 与 ass 格式皆可)

命令如下

使用以下命令不会报错。

ffmpeg -i input.mkv -i input.srt -c copy -c:s srt output.mkv

ffmpeg -i input.mkv -i input.ass -c copy -c:s ass output.mkv

给mp4文件添加srt格式的软字幕(mkv格式本身支持字幕轨道,但mp4需要使用mov_text)

ffmpeg -i input.mp4 -i input.srt -c copy -c:s mov_text output.mp4

ffmpeg -i input.mp4 -i input.ass -c copy -c:s mov_text output.mp4

已执行成功的具体例子

youtu下载的webm格式视频,使用mov_text

ffmpeg -i "D:\Personal\Desktop\2\2.webm" -i "D:\Personal\Desktop\2\3.ass" -c copy -c:s mov_text 2.mp4

注意,转的目标格式是mp4则用mov_text。不是指源视频。

mp4 省略mov_text 报错,使用ass也报错,mkv使用mov_text 报错。这些都经过试错都玩过,所以命令很严格,必须一个都不差。

经测试有个问题。使用ass转成mkv的时候,这个底色生效。使用ass专场mp4格式的时候,这个底色不生效。

更改方式:BorderStyle=3

 

使用mkv的srt字幕能在播放器里二次调节位置大小字体等等,但是使用mp4就不行,同样是srt。

 

 

 

  • 从 Video.mp4 中提取音频:  

ffmpeg -i audio1.mp4 1.mp3

  • 合并音视频 (将纯视频video.mp4和音频1.mp3合并成一个音视频final.mp4):

    参数介绍: -shortest:在其中一个输入停止后立即停止(音频/视频)

ffmpeg -i video.mp4 -i 1.mp3 -shortest final.mp4

  • 删除视频中的音频:

ffmpeg -i video.mp4 -an videofinal.mp4

posted @ 2022-04-03 23:14  很多无尾熊  阅读(464)  评论(0)    收藏  举报
本站已运行[ ]
正在加载今日诗词....