ffmpeg操作速查
切割音频
ffmpeg -i zhaoliying.mp3 -vn -acodec copy -ss 00:00:00 -t 00:00:10 zhaoliying_10s.mp3
切割视频
ffmpeg -i target_video.mp4 -vcodec copy -acodec copy -ss 00:00:00 -t 00:00:05 target_video_5s.mp4
加logo
提取音频
ffmpeg -i target_video_0829_1.mp4 -f mp3 -vn target_video_0829_1.mp3
改fps
ffmpeg -i “target_video_0829_1.mp4” -r 29.97 -b:v 10M “target_video_0829_1_fps2997.mp4”
拼接视频
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex hstack output.mp4
图片转视频
ffmpeg -f image2 -i %d.png -vcodec libx264 -r 29.97 -b:v 10M tt.mp4
旋转视频
ffmpeg -i input.mp4 -vf “transpose=1” output.mp4
拼接音频
sox 1.mp3 2.mp3 out.mp3
这边是发现ffmpeg拼不起来,然后用sox发现报错是
所以要调整一下sample-rate和channels
ffmpeg -i 1.mp3 -ac 1 -ar 16000 out1.mp3
改音频为16K
ffmpeg -i 01.mp3 -acodec pcm_s16le -ac 1 -ar 16000 1.wav
改视频size
ffmpeg -i ziyi_C049_bg_4K.mp4 -vf scale=1920:1080 ziyi_C049_bg_1080p.mp4 -hide_banner
切割画面
ffmpeg -i input -vf crop=480:480:186:0 output
https://ask.csdn.net/questions/227737
加水印
ffmpeg -i audio_0_1s.avi -vf "movie=logo.png[watermark];[in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] " output.avi
批量处理
参考:How to batch convert/multiplex any files with ffmpeg
改了一个脚本:
1 | for %%a in ("*.*") do ffmpeg -i "%%a" -vf "movie=logo_L.png[watermark];[in][watermark] overlay=0:0[out] " "newfiles\%%~na.mp4" |
在terminal运行脚本
上面的链接用的是.bat,在linux需要用shell(shell学习指南)编写脚本。
在terminal运行.sh脚本
首先新建一个文件test.sh,然后使用bash命令运行:$ bash test.sh
运行command
在测试过程中得知command和script不太一样,用以下command成功了:for vid in *.avi; do ffmpeg -i "$vid" -vf "movie=logo_L.png[watermark];[in][watermark] overlay=0:0[out] " "${vid%.*}_logo.avi"; done