• ffmpeg使用


    ffmpeg使用
     
    去除水印
    ffmpeg -i 1.mp4 -vf "delogo=x=50:y=640:w=180:h=60:show=0" -c:a copy 2.mp4
     
    剪切片段
    ffmpeg -i input.mp4 -ss 1:05 -t 10 output.mp4
    

    -ss 5指定从输入视频第1:05秒开始截取,-t 10指明最多截取10秒。

    但是上面的命令可能会比较慢,更好的命令如下:

    ffmpeg -ss 1:05 -i input.mp4 -t 10 -c:v copy -c:a copy output.mp4
    

    -ss 1:05放到-i前面,与原来的区别是,这样会先跳转到第1:05秒在开始解码输入视频,而原来的会从开始解码,只是丢弃掉前1:05秒的结果。
    -c:v 和 -c:a分别指定视频和音频的编码格式。
    -c:v copy -c:a copy标示视频与音频的编码不发生改变,而是直接复制,这样会大大提升速度

    音频合并

    ffmpeg64.exe -i "concat:123.mp3|124.mp3" -acodec copy output.mp3
     
    视频合并
    ffmpeg64.exe -i "concat:123.mp4|124.mp4" -c copy output.mp4
    或者创建一个文本文件filelist.txt,写入文件名
    file 'sp1.mp4'
    file 'sp2.mp4'
    file 'sp3.mp4'
    保存后输入
    ffmpeg -f concat -i filelist.txt -c copy output.mp4
    可能出现Unsafe file name,需要加入-safe 0
    ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
     
    调整视频速率
    调整视频速率的原理为:修改视频的pts,dts
    此过程由于不用进行解码编码,所以费时很少
     
    ffmpeg -i input.mkv -an -filter:v "setpts=0.5*PTS" output.mkv

    注意:

    • 调整速度倍率范围[0.25, 4]
    • 如果只调整视频的话最好把音频禁掉
    • 对视频进行加速时,如果不想丢帧,可以用-r 参数指定输出视频FPS
    ffmpeg -i input.mkv -an -r 60 -filter:v "setpts=2.0*PTS" output.mkv 调整音频速率
    简单的方法是调整音频采样率,但是这种方法会改变音色,
    一般采用通过对原音进行冲采样,差值等方法。
     
    ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv

    注意:

    • 倍率调整范围为[0.5, 2.0]
    • 如果需要调整4倍可采用以下方法:
    ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv 同时调整
    ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv
     
     
     
    PS:   ffplay 播放没有声音的问题
    有些在Windows没有声音,cmd使用出现
    SDL_OpenAudio (1 channels, 44100 Hz): WASAPI can't initialize audio client
    No more combinations to try, audio open failed
    [swscaler @ 000000000b90abc0] deprecated pixel format used, make sure you did se
    t range correctly
     
    解决方法:在cmd设置 set SDL_AUDIODRIVER=directsound可以解决
     
     
     

    翻转和旋转

    参考链接:https://www.jianshu.com/p/3c8c4a892f3c
    来源:简书

    水平翻转语法: -vf hflip
    ffplay -f lavfi -i testsrc -vf hflip
    垂直翻转语法:-vf vflip
    ffplay -f lavfi -i testsrc -vf vflip

    语法: ffplay -i testsrc -vf transpose={0,1,2,3} output.mp4

    0:逆时针旋转90°然后垂直翻转
    1:顺时针旋转90°
    2:逆时针旋转90°
    3:顺时针旋转90°然后水平翻转

    指定角度90° : ffplay -i testsrc -vf rotate=PI/2 output.mp4

    ffmpeg 直接将m3u8转成mp4:

    ffmpeg -i “http://xxxxxx/video/movie.m3u8” -vcodec copy -acodec copy -absf aac_adtstoasc output.mp4

    其中 http://xxxxxx/video/movie.m3u8 视频的m3u8地址列表, output.mp4 为输出mp4的文件名

    参考链接:https://blog.csdn.net/guojianwei2011/article/details/83242789

    从视频中抽取音频

    为了从视频文件中抽取音频,直接加一个 -vn 参数就可以了:

    ffmpeg -i video.mp4 -vn audio.mp3

    这会让命令复用原有文件的比特率,一般来说,使用 -ab (音频比特率)来指定编码比特率是比较好的:

    ffmpeg -i video.mp4 -vn -ab 128k audio.mp3

    一些常见的比特率有 96k, 128k, 192k, 256k, 320k (mp3也可以使用最高的比特率)。

    其他的一些常用的参数比如 -ar (采样率: 22050, 441000, 48000), -ac (声道数), -f (音频格式, 通常会自动识别的). -ab 也可以使用 -b:a 来替代. 比如:

    ffmpeg -i video.mov -vn -ar 44100 -ac 2 -b:a 128k -f mp3 audio.mp3

    音频和视频合成

    使用的条件是:视频文件中没有音频

    ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4

    video.mp4,audio.wav分别是要合并的视频和音频,output.mp4是合并后输出的音视频文件。

    下面的命令是用audio音频替换video中的音频

    ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0 output.mp4



    参考链接:https://www.zhihu.com/question/300182407/answer/722622224
  • 相关阅读:
    求出123456 8910,数字,显示出来
    Django之Model操作
    AJAX全套
    Python之路【第十六篇】:Django【基础篇】
    Q2Day81
    Django第二重点(thml与django连接)
    react
    es6 和 python 语法比较
    微信
    py库: GUI(tkinter)
  • 原文地址:https://www.cnblogs.com/hanzg/p/16344463.html
Copyright © 2020-2023  润新知