20230320-ffmpeg使用笔记

旋转方式嘛,常见的就够用了,使用参数 transpose

逆时针旋转90度并垂直旋转

顺时针旋转90度

顺时针旋转90度后并垂直翻转

顺时针旋转90度

1
ffmpeg -i vid1.mp4 -vf "transpose=1" vid1-output.mp4

vid1.mp4是你要旋转的视频,参数指定-vf “transpose=1”就是顺时针,vid1-output.mp4是你旋转后要保存的文件名,以下类推。

逆时针旋转90度(顺时针旋转270度)

1
ffmpeg -i vid1.mp4 -vf "transpose=2" vid1-output.mp4

我的视频就需要逆时针旋转90度,请观察你的视频以便确定旋转角度。

顺时针旋转180度

相当于是旋转两次:

1
ffmpeg -i vid1.mp4 -vf "transpose=2,transpose=2" vid1-output.mp4

顺时针旋转90度后并垂直翻转

1
ffmpeg -i vid1.mp4 -vf "transpose=3" vid1-output.mp4

如果你的视频和我一样,分辨率是1920*1080的,那么旋转后不会有黑边。

这办法比直接旋转角度要好,如果你用这样的命令:

1
ffmpeg -i vid1.mp4 -vf "rotate=PI/2" vid11.mp4

会有黑边,因为原宽高并没有改变!

成功喽:

ffmpeg是个开源免费的视频命令行工具,如果有大量的视频需要批量操作,也是有办法的,请参考官网文档。

ffmpeg 合并多个视频文件

某某视频,通过工具把一个视频被切割成12个视频都下载下来。想要合并12个视频文件到一个视频文件,试过各种,达芬奇、QQ影音、PR,要么视频模糊了,要么文件巨大,受不了了。只好找到视频编辑鼻祖(不接受反抗,事实如此)。

Mark:本文不解释ffmpeg安装和环境设置问题。

方法一: 直接合并

a.编辑 2.txt

仅包含12行,不包含#号。

file ‘01.mp4’

file ‘02.mp4’

file ‘03.mp4’

file ‘04.mp4’

file ‘05.mp4’

file ‘06.mp4’

file ‘07.mp4’

file ‘08.mp4’

file ‘09.mp4’

file ‘10.mp4’

file ‘11.mp4’

file ‘12.mp4’

b.直接无损合并

ffmpeg.exe -f concat -safe 0 -i 2.txt -c copy -y o1.mp4

-f concat是指合并

-safe 为了避免权限报错

-c copy 一定要指定,不然会重新封装,数据文件就会变大。

好处:不会变大,且加了 -c copy很快完成合并。

方法二:转成ts 再转回mp4

根据各位大佬的描述,貌似转回ts,再重新压制是比较科学的做法,但是我这个场景可能比较简单。

a. 先把12个mp4转换为ts文件

编辑 1.bat

####### 1.bat 不包含#####

ffmpeg -i 01.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 01.ts

ffmpeg -i 02.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 02.ts

ffmpeg -i 03.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 03.ts

ffmpeg -i 04.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 04.ts

ffmpeg -i 05.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 05.ts

ffmpeg -i 06.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 06.ts

ffmpeg -i 07.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 07.ts

ffmpeg -i 08.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 08.ts

ffmpeg -i 09.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 09.ts

ffmpeg -i 10.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 10.ts

ffmpeg -i 11.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 11.ts

ffmpeg -i 12.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 12.ts

#######到这里结束,#号不要复制

不要直接复制12个命令到cmd运行,会跑漏掉。

在cmd里面 执行1.bat

b.整合12个ts文件到一个mp4

编辑 1.txt

########

file ‘01.ts’

file ‘02.ts’

file ‘03.ts’

file ‘04.ts’

file ‘05.ts’

file ‘06.ts’

file ‘07.ts’

file ‘08.ts’

file ‘09.ts’

file ‘10.ts’

file ‘11.ts’

file ‘12.ts’

########

执行整合

ffmpeg -f concat -i 1.txt -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4

  1. 删除所有ts文件

rm *.ts

第二个方法,挺费时间,给大家备用吧。可能对于不同的文件格式确实需要转回ts再处理。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2024 TeX_baitu
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~