批处理之家's Archiver

老刘1号 发表于 2019-11-11 13:15

[20230511更新]老刘常用的FFmpeg命令

[i=s] 本帖最后由 老刘1号 于 2023-5-12 18:58 编辑 [/i]

不定期更新。
注意:ffmpeg的参数位置不同,意义不同,请不要改变参数位置。



[size=7][url=https://itiit.cn/html/ffmpeg.html]中文文档(2018)[/url][/size]
[color=Red][size=7]官方帮助[/size][/color]
[size=6]
[url=http://ffmpeg.org/ffmpeg.html]ffmpeg Documentation[/url]
[url=http://ffmpeg.org/ffplay.html]ffplay Documentation[/url]
[url=http://ffmpeg.org/ffprobe.html]ffprobe Documentation[/url]
[url=https://mpv.io/manual/master/]MPV Manual[/url]
[/size]
[quote]
离线帮助:
ffmpeg    -h      -- print basic options
ffmpeg    -h long -- print more options
ffmpeg    -h full -- print all options (including all format and codec specific options, very long)
ffmpeg    -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf
[/quote]
[color=Red][size=7]视频转码为H.264/H.265编码(软编码,固定码率)[/size][/color]
[size=4]软编解码,封装格式mp4,视频流转h264编码,码率300k;音频流转mp3,码率32k。
参数介绍:
-vcodec:指定视频编码器,可简写为-c:v。
    可以指定编码器为libx265,编码更慢,但在码率减少51-74%的情况下,H.265编码视频的质量还能与H.264编码视频近似甚至更好。
-acodec:指定音频编码器,可简写为-c:a。
-b:a:指定音频流的码率。
-b:v:指定视频流的码率。
以下为libx264编码器的参数:
-preset:品质,此处指定为faster。
    可选:ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo
    品质高于ultrafast,效果就比一般转码软件好。低码率也很清晰。
-tune:优化,此处指定为film。
    可选:
        film:电影真人类型
        animation:动画
        grain:需要保留大量的grain
        stillimage:静态图像编码时使用
        psnr:提高psnr做了优化的参数
        ssim:提高ssim做了优化参数
        fastdecode:可以快速解码的参数
        zerolatency:零延迟,用在需要非常低的延迟的情况,比如电视电话会议编码
其它没有加进去的参数:
-r:修改帧率
-s:修改尺寸(如-s 1920x1080)
-ss:视频开始时间。(-ss hh:mm:ss[.xxx])
-t:持续时间(-t hh:mm:ss[.xxx]或-t 秒数)
-to:截止时间。(-to hh:mm:ss[.xxx])[/size][code]FFMPEG -i "%~1" -vcodec libx264 -preset faster -tune film -b:v 300k -c:a libmp3lame -b:a 32k "%~dp1(new)%~n1.MP4"[/code][color=Red][size=7]视频转码为H.264/H.265编码(动态码率)[/size][/color]
[size=4]
软编码器(兼容性较好,CPU占用大):
    编码器名:libx264、libx265
    参数:指定-crf(一般18就可以),-preset只决定最终文件大小,不影响视频质量。
    参数详解:
        设定CRF值,来确定画质。
        数字越小画质越高,数字越大画质越差,一般在设定在16-24之间。
        在其他参数不变的情况下,CRF值每减小6,输出的文件会变大一倍左右。
        接着设定 Preset,来确定编码速度。
        编码越快,生成的文件越大;编码越慢,文件越小。
        一般设定在faster-slower之间。CRF模式下不影响画质,只和编码速度、文件大小有关。
硬编码器(兼容性一般,CPU占用低,编码速度快):
    Intel QuickSync
        编码器名:h264_qsv、hevc_qsv
        参数:
            h264_qsv:preset=veryslow,profile=high,look_ahead=1,global_quality=18
            hevc_qsv:preset=veryslow,profile=main,look_ahead=1,global_quality=18
    AMD AMF(首先你需要有A卡)
        编码器名:h264_amf、hevc_amf
        参数:
            h264_amf:b=10000000,quality=quality,profile=high,rc=vbr_peak,maxrate=13000000,bufsize=20000000
            hevc_amf:b=10000000,quality=quality,profile=main,rc=vbr_peak,maxrate=13000000,bufsize=20000000
    Nvidia NVENC(首先你需要有N卡)
        编码器名:h264_nvenc、hevc_nvenc
        参数:
            h264_nvenc:b=10000000,preset=slow,profile=high,rc=vbr_hq,maxrate=13000000,bufsize=20000000
            hevc_nvenc:b=10000000,preset=slow,profile=main,rc=vbr_hq,maxrate=13000000,bufsize=20000000[/size]
[color=Red][size=7]SVP 4 插帧转码提取版(无水印)[/size][/color]
[size=4]ffff.py与转码参数的对应
最终视频帧率
        =src_fps*smoothfps_params.rate.num/smoothfps_params.rate.den
        num和den是整数。
SVP着色器
        最快:algo:1
        锐利(适用于动画):algo:2
        分块(仅使用CPU):block:true,algo:11
        简单清淡:algo:11
        简单:algo:21,mask:{cover:80}
        标准:algo:13
        复杂:algo:23,mask:{cover:80}
帧插补
        恒定帧间隔(流畅):scene:{mode:0}
        “2m”伪影最小:scene:{mode:2}
        “1.5m”少量伪影:scene:{limits:{m1:0,m2:0}}
        “1m”普通模式:scene:{mode:1}
        自适应
                1m-1.5m-2m:scene:{adaptive:321}
                1m-1m-2m:scene:{adaptive:331}
                恒定帧间隔-1m-1.5:scene:{}
                恒定帧间隔-1m-2m:scene:{adaptive:310}
[/size][code]::插帧软件SVP 4视频插帧转码提取版。
::二倍帧率。
::需要安装了SVPcode的SVP 4运行。
::需要ffff.py。
>"%~dp0fps.txt" ffprobe ^
        -v error ^
        -select_streams v ^
        -of default=noprint_wrappers=1:nokey=1 ^
        -show_entries stream=r_frame_rate ^
        "%~f1"
Start /Wait "" "C:\Users\lenovo\Desktop\SVP\SVP 4\mpv64\mpv.exe" ^
        "%~f1" --o="%~dpn1.MKV" ^
        --no-sub --no-sub-auto ^
        --input-ipc-server=mpvencodepipe ^
        --input-media-keys=no ^
        --no-msg-color ^
        --vf=vapoursynth:[%~dp0ffff.py]:4:8 ^
        --of=matroska ^
        --ovc=libx264 --ovcopts=preset=slower,crf=30,threads=8 ^
        %--oac=libmp3lame% %--oacopts=b=32k% --no-audio
del "%~dp0fps.txt"
ffmpeg -i "%~dpn1.MKV" -i "%~f1" -map 0:v -c:v copy -map 1:a -c:a copy "%~dp1NEW.%~n1.MP4"
del "%~dpn1.MKV"[/code][code]#ffff.py
#插帧软件转码提取版所需的脚本。
f = open('C:\\Users\\lenovo\\Desktop\\SVP\\fps.txt')
src_fps = eval(f.read())
f.close()

# This script was generated by SVP 4 Manager.
# Check https://www.svp-team.com for more details.

import vapoursynth as vs
core = vs.get_core(threads=8)

core.std.LoadPlugin("C:\\Users\\lenovo\\Desktop\\SVP\\SVP 4\\plugins64\\svpflow1_vs.dll")
core.std.LoadPlugin("C:\\Users\\lenovo\\Desktop\\SVP\\SVP 4\\plugins64\\svpflow2_vs.dll")

clip = video_in

super_params     = "{scale:{up:0},gpu:1,rc:true}"
analyse_params   = "{block:{w:8},main:{search:{coarse:{distance:-12,bad:{sad:2000}},type:2}},refine:[{thsad:250}]}"
smoothfps_params = "{gpuid:11,gpu_qn:2,rate:{num:2,den:1},algo:23,mask:{cover:80},scene:{mode:0}}"

#src_fps     = 25
demo_mode   = 0
stereo_type = 0
nvof = 0

########## BEGIN OF base.py ##########
# This file is a part of SmoothVideo Project (SVP) ver.4
# This is NOT the full Vapoursynth script, all used variables are defined via
# JScript code that generates the full script text.

def interpolate(clip):
# input_um - original frame in 4:2:0
# input_m  - cropped and resized (if needed) frame
# input_m8 - input_m converted to 8-bit
    input_um = clip.resize.Point(format=vs.YUV420P8,dither_type="random")
    input_m = input_um
    input_m8 = input_m

    if nvof:
        smooth  = core.svp2.SmoothFps_NVOF(input_m,smoothfps_params,nvof_src=input_m8,src=input_um,fps=src_fps)
    else:
        super   = core.svp1.Super(input_m8,super_params)
        vectors = core.svp1.Analyse(super["clip"],super["data"],input_m8,analyse_params)
        smooth  = core.svp2.SmoothFps(input_m,super["clip"],super["data"],vectors["clip"],vectors["data"],smoothfps_params,src=input_um,fps=src_fps)


    if demo_mode==1:
        return demo(input_m,smooth)
    else:
        return smooth

if stereo_type == 1:
    lf = interpolate(core.std.CropRel(clip,0,(int)(clip.width/2),0,0))
    rf = interpolate(core.std.CropRel(clip,(int)(clip.width/2),0,0,0))
    smooth = core.std.StackHorizontal([lf, rf])
elif stereo_type == 2:
    lf = interpolate(core.std.CropRel(clip,0,0,0,(int)(clip.height/2)))
    rf = interpolate(core.std.CropRel(clip,0,0,(int)(clip.height/2),0))
    smooth = core.std.StackVertical([lf, rf])
else:
    smooth =  interpolate(clip)
########### END OF base.py ###########


smooth = smooth.resize.Point(format=vs.YUV420P8)
smooth.set_output()[/code][color=Red][size=7]例子/自用小程序[/size][/color]
视频、音频转mp3(就是这么简单粗暴)[code]for %%a in (%*) do ffmpeg -i "%%~fa" "%%~dpna.MP3"[/code]二倍速处理音频[code]ffmpeg -i "%~1" -filter:a "atempo=2.0" -vn "%~dp1(二倍速)%~nx1"[/code][code]::无损视频合并
::用法:按顺序拖入要合并的视频文件,然后回车。完成后按Ctrl+Z再回车,拖入输出路径。
::要求:音频编码为AAC。
@echo off
Setlocal enabledelayedexpansion
::CODER BY 老刘 POWERD BY iBAT
copy con "%temp%\list.tmp">nul
set /p outputpath=输出路径:
set /a n=1
for /f "delims=" %%. in ('type "%temp%\list.tmp"') do (
        ffmpeg -i "%%~f." -c:v copy -c:a copy -vbsf h264_mp4toannexb -y "%temp%\!n!.ts"
        Set "concat=!concat!%temp%\!n!.ts|"
        Set /a n+=1
)
ffmpeg -i "concat:!concat:~,-1!" -acodec copy -vcodec copy -absf aac_adtstoasc "!outputpath:"=!\output.mp4"
pause[/code]音频混音
改volume可以调整两个音频的音量,保证混音效果[code]@echo off
Setlocal enabledelayedexpansion
::CODER BY 老刘 POWERD BY iBAT
ffmpeg -i "H:\db.MP3"^
-ss 00:00:03.15 -i "D:\我的文档目录\Tencent Files\632171029\FileRecv\MobileFile\音频录制2019-07-18 21-33-49.wav"^
-filter_complex "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=1[a0]; [1:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=1[a1]; [a0][a1]amerge=inputs=2[aout]" -map "[aout]" -ac 2 -y h:\mix_v0.5.mp3
pause[/code]录制桌面(无音频流(无声音),FPS(帧率) 6)[code]ffmpeg.exe -f gdigrab -framerate 6 -i desktop out.mp4[/code]M3U8下载并合并为视频
FLV[code]"ffmpeg.exe" -threads 0 -i "URL" -c copy -y -f f4v -bsf:a aac_adtstoasc "1.flv"
[/code]MKV[code]"ffmpeg.exe" -threads 0 -i "URL" -c copy -y -bsf:a aac_adtstoasc "1.mkv"[/code]MP4[code]"ffmpeg.exe" -threads 0 -i "%~1" -c copy -y -bsf:a aac_adtstoasc "1.mp4"[/code]TS[code]"ffmpeg.exe" -threads 0 -i "URL" -c copy -y -f mpegts "1.ts"
[/code][code]
::效果不好弃用,替代命令见下:
::https://bbs.kafan.cn/thread-2210091-1-1.html
::视频剪辑合并
::用法:
::1、第一个分段中一定要有关键帧(不要截太短),否则会合并失败,变成只有音频流的mp4。
::2、分段信息例: 1:37-7:21 8:40~10:00 (冒号全角半角都可,-或~分割起始点和终点,空格分隔每一段)
::缺点:剪切的视频开头有黑屏或卡顿,因为ffmpeg无法seek到关键帧上。
::优点:不用转码,剪辑真的很快;可编程,可自动化,适合批量粗略剪辑。
@echo off
Setlocal enabledelayedexpansion
:start
::CODER BY 老刘 POWERD BY iBAT
set /p Filepath=视频文件路径:
set "FilePath=!FilePath:"=!"
Set /p SplitInfo=分段信息:

set SplitInfo=!SplitInfo:-=~!
set SplitInfo=!SplitInfo::=:!
set /a n=1
rem set concat=
cd.>%temp%\concatlist
for %%a in (!SplitInfo!) do (
        for /f "tokens=1-2 delims=~" %%b in ("%%a") do (
                for /f "tokens=1-2 delims=:" %%d in ("%%b") do (
                        set SplitFromMinute=%%d
                        if "!SplitFromMinute:~1!" Equ "" set SplitFromMinute=0%%d
                        set SplitFromSecond=%%e
                        if "!SplitFromSecond:~1!" Equ "" set SplitFromSecond=0%%e
                        if "!SplitFromMinute!:!SplitFromSecond!" Equ "00:00" set SplitFromSecond=01
                )
               
                for /f "tokens=1-2 delims=:" %%d in ("%%c") do (
                        set SplitToMinute=%%d
                        if "!SplitToMinute:~1!" Equ "" set SplitToMinute=0%%d
                        set SplitToSecond=%%e
                        if "!SplitToSecond:~1!" Equ "" set SplitToSecond=0%%e
                )
                Echo 截取分段 !n! : !SplitFromMinute!:!SplitFromSecond! -^> !SplitToMinute!:!SplitToSecond!
                for %%A in ("!Filepath!") do (
                        rem >nul 2>nul
                        >nul 2>nul ffmpeg ^
                                -i "%%~fA" ^
                                -ss !SplitFromMinute!:!SplitFromSecond! ^
                                -to !SplitToMinute!:!SplitToSecond! ^
                                -c:v copy ^
                                -c:a copy ^
                                %-vbsf% %h264_mp4toannexb% ^
                                -y ^
                                "%temp%\!n!.ts.mp4"
                        rem Set "concat=!concat!%temp%\!n!.ts.mp4|"
                        echo file '%temp%\!n!.ts.mp4' >>"%temp%\concatlist"
                        Set /a n+=1
                )
        )
)
rem notepad %temp%\concatlist
rem exit
Set /a n-=1
for %%A in ("!Filepath!") do (
        ren "%%~fA" "%%~nA.old"
        echo 合并 !n! 个分段
        rem >nul 2>nul
        >nul 2>nul ffmpeg ^
                -f concat ^
                -safe 0 ^
                -i "%temp%\concatlist" ^
                -vcodec copy ^
                -acodec copy ^
                -y ^
                "%%~fA"
)
echo.
goto start


rem 以下命令已弃用,仅作备份
ffmpeg ^
        -i "concat:!concat:~,-1!" ^
        -vcodec copy ^
        -absf aac_adtstoasc ^
        -acodec copy ^
        -y ^
        "%%~fA"

[/code][code]::音频去噪
::用法:媒体文件拖到bat上,然后按提示输入参数
@echo off
Setlocal enabledelayedexpansion
::CODER BY 老刘 POWERD BY iBAT
set /p t=噪音出现时间点(MM:SS):
set /p x=去噪效果(0~1,推荐0.2~0.3):
ffmpeg -i "%~1" "%tmp%\origin.wav"
ffmpeg -i "%~1" -ss 00:!t! -t 1 "%tmp%\noise.wav"
sox "%tmp%\noise.wav" -n noiseprof "%tmp%\noise.prof"
sox "%tmp%\origin.wav" "%~dp1[NO_Noise]%~n1.wav" noisered "%tmp%\noise.prof" !x!
pause[/code][code]::视频音量调整
::音频编码会被转为mp3
@set /p vpath=拖入视频路径:
@set /p volume=输入音量增幅(单位dB):
@set /p audio_bitrate=输入音频码率(单位kbps):
@Call :处理 "%vpath:"=%"
@Exit
:处理
@ffmpeg -i "%~1" -c:v copy -c:a libmp3lame -b:a %audio_bitrate%k -af "volume=%volume%dB" "%~dp1(+%volume%dB)%~nx1"
[/code][code]::视频音频流码率压缩
::压缩到:mp3 16kbps
::将视频拖动到批处理上。
FFMPEG -i "%~1" -c:a libmp3lame -b:a 16k -c:v copy "%~dp1(audio_16k)%~n1.MP4"
[/code][code]::视频帧率快速压缩
::压缩到:13fps
::将视频拖动到批处理上。
FFMPEG -i "%~1" -r 13 -c:v libx264 -preset ultrafast -c:a copy "%~dp1(13fps)%~n1.MP4"
[/code][code]::视频帧率、音频流码率压缩
::压缩到:13fps;mp3 16kbps
::将视频拖动到批处理上。
FFMPEG -i "%~1" -r 13 -c:v libx264 -preset ultrafast -c:a libmp3lame -b:a 16k "%~dp1(13fps audio_16k)%~n1.MP4"
[/code][code]::视频流+第二个音频流生成新视频
ffmpeg -i ".\2019.10.12 - 21.28.39.02.mp4" -map 0:v  -c:v copy -map 0:a:1 -c:a copy 1.mp4[/code][code]::导出第二个音频流
ffmpeg -i ".\2019.10.12 - 21.28.39.02.mp4" -map 0:a:1 -c:a copy 1.aac[/code][code]::视频动态码率压缩。
::压缩到crf=30。
@rem echo %time%
@ffmpeg.exe -i "%~f1" -c:a copy -c:v libx264 -preset slower -crf 30 "%~f1.new.mp4"
@rem echo %time%
@pause[/code][code]::mpv视频动态码率压缩。
::压缩到crf=30,占用比ffmpeg低。
@echo %time%
@Start /Wait "" "C:\Users\lenovo\Desktop\SVP\SVP 4\mpv64\mpv.exe" ^
        "%~f1" --o="%~dpn1.mkv" ^
        --no-sub --no-sub-auto ^
        --input-media-keys=no ^
        --no-msg-color ^
        --of=matroska ^
        --ovc=libx264 --ovcopts=preset=slower,crf=30,threads=8 ^
        %--oac=libmp3lame% %--oacopts=b=32k% %--no-audio%

@echo %time%
@pause[/code][code]::得到视频帧率
>"%~dp0fps.txt" ffprobe ^
        -v error ^
        -select_streams v ^
        -of default=noprint_wrappers=1:nokey=1 ^
        -show_entries stream=r_frame_rate ^
        "%~f1"[/code][code]
::嵌入ASS字幕
::若出现Could not create a libass track when reading file 错误,请将字幕编码改为UTF-8
ffmpeg -i input.mp4 -i input.ass -vf ass=input.ass output.mp4
[/code]视频码率检测:
[url]https://blog.csdn.net/qq_23282479/article/details/119488291[/url]
视频ts切片并生成m3u8
[url]https://www.cnblogs.com/fieldtianye/p/13427303.html[/url]

Batcher 发表于 2019-11-11 21:10

感谢分享
借这个机会看看关注 ffmpeg 的朋友们多不多

批处理用ffmpeg获取视频文件时长[code]@echo off
for /f "tokens=2 delims=, " %%a in ('ffmpeg -i "1.mp4" 2^>^&1 ^| find "Duration:"') do (
    set str=%%a
)
echo %str%
pause[/code]批处理调用ffprobe批量删除小于6秒和大于240秒的mp4视频文件
[url]http://bbs.bathome.net/thread-61303-1-1.html#pid276466[/url]

批处理用ffmpeg在视频文件名后追加文件时长
[url]http://bbs.bathome.net/thread-59515-1-1.html[/url][code]@echo off
setlocal enabledelayedexpansion
cd /d "%~dp0"
for /f "delims=" %%i in ('dir /b /s /a-d *.mp4') do (
    for /f "tokens=2 delims=, " %%a in ('ffmpeg -i "%%i" 2^>^&1 ^| find "Duration:"') do (
        set "str=%%a"
    )
    set str=!str:~0,-3!
    set str=!str::=:!
    ren "%%i" "%%~ni【!str!】%%~xi"
)[/code]批处理用ffmpeg获取视频文件比特率[code]@echo off
for /f "tokens=6 delims=:" %%a in ('ffmpeg -i "1.mp4" 2^>^&1 ^| find "bitrate:"') do (
    set str=%%a
)
set str=%str:~1%
echo %str%
pause[/code]批处理用ffmpeg获取视频文件分辨率[code]@echo off
for /f "tokens=11" %%a in ('ffmpeg -i "1.mp4" 2^>^&1 ^| find "Video:"') do (
    set str=%%a
)
echo %str%
pause[/code]批处理调用ffprobe批量删除宽大于高的mp4视频文件
[url]http://bbs.bathome.net/thread-67680-1-1.html#pid276468[/url]

批处理用ffmpeg获取图片和视频的高度和宽度,进行重命名
[url]http://bbs.bathome.net/thread-61980-2-1.html#pid253147[/url]

批处理用ffmpeg获取视频文件帧数
[url]http://bbs.bathome.net/thread-59764-2-1.html#pid244327[/url][code]@echo off
for /f "tokens=2" %%i in ('ffmpeg -i 1.mp4 -map 0:v:0 -c copy -f null - 2^>^&1 ^| findstr /b "frame="') do (
    set "FrameCount=%%i"
)
echo %FrameCount%
pause[/code][code]ffprobe -v error -select_streams v:0 -count_packets -show_entries stream=nb_read_packets -of csv=p=0 1.mp4[/code][code]mediainfo --Output="Video;%FrameCount%" 1.mp4[/code]批处理用ffmpeg提取某个时间点的帧为图片[code]ffmpeg -i "1.mp4" -ss 00:00:35 -frames:v 1 "1.png"[/code]批处理用ffmpeg批量删除片头片尾
[url]http://bbs.bathome.net/thread-50807-1-1.html#pid213428[/url]

批处理用ffmpeg根据时长分割mp3音频文件,分割为每60秒一个文件[code]@echo off
cd /d "%~dp0"
ffmpeg -i "in.mp3" -f segment -segment_time 60 -c copy "out_%%03d.mp3"[/code]批处理用ffmpeg把mp3音频文件根据时长分割为三等分
[url]http://bbs.bathome.net/thread-54211-1-1.html#pid224827[/url]

批处理用ffmpeg获取mp3音频文件时长并转换成秒数[code]@echo off
cd /d "%~dp0"
for /f "tokens=2-4 delims=:. " %%a in ('ffmpeg -i "in.mp3" 2^>^&1 ^| find "Duration:"') do (
    call :Time2SS %%a %%b %%c
)
echo,%SS%
pause
goto :eof

:Time2SS
set /a HH=1%1-100
set /a MM=1%2-100
set /a SS=1%3-100
set /a HH2MM=HH*60
set /a MM+=HH2MM
set /a MM2SS=MM*60
set /a SS+=MM2SS
goto :eof[/code]批处理用ffmpeg给视频批量截图结尾最后3秒处
[url]http://bbs.bathome.net/thread-63898-1-1.html#pid259756[/url]

批处理调用ffmpeg给mp3文件追加静音
[url]http://bbs.bathome.net/thread-66880-1-1.html#pid271518[/url]

批处理调用ffmpeg去除MP3文件首尾处的静音区
[url]http://bbs.bathome.net/thread-66892-1-1.html#pid271569[/url]

批处理调用ffmpeg合并mp3文件
[url]http://bbs.bathome.net/thread-66899-1-1.html#pid271596[/url]

批处理调用ffmpeg合并wav和mp3实现混响效果
[url]http://bbs.bathome.net/thread-67636-1-1.html#pid275193[/url]

老刘1号 发表于 2019-11-11 22:11

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=224827&ptid=54211]2#[/url] [i]Batcher[/i] [/b]


    这个帖子在首页待不了两天,标题也不利于搜索;况且坛友大部分也对这个没有硬性需求,人气肯定不多~
人气是要有对应的板块,丰富的学习资料,友好的讨论气氛才能慢慢涨起来的。
我觉得论坛冷门的板块也不少,应该不差这几个吧:lol

523066680 发表于 2019-11-12 08:07

[i=s] 本帖最后由 523066680 于 2019-11-12 08:52 编辑 [/i]

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=224831&ptid=54211]3#[/url] [i]老刘1号[/i] [/b]

    我们找个机会杠起来,人气肯定会有的。

我也经常用FFMPEG, 有些有问题的订单,我们会让客户发产品故障视频,保存作为参考。这些手机拍摄的原视频,通常几十秒就一百多M。
FFMPEG转mp4,不需要什么复杂的参数,转换后可以达到10M以内,很好用。通常我会加个 -vb 1M 保持画质

说到FFMPEG,就不免想起一个人  [url=https://www.zhihu.com/question/49211380/answer/114884629]雷霄骅[/url]

老刘1号 发表于 2019-11-12 10:18

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=224832&ptid=54211]4#[/url] [i]523066680[/i] [/b]


    是啊,搞这个的谁不知道雷佬呢,可惜……

Batcher 发表于 2019-11-12 10:19

说到FFMPEG,就不免想起一个人  Steven Liu
国内唯一出现在官网的核心maintainer
一起爬过长城[img]http://bbs.bathome.net/images/smilies/default/lol.gif[/img]

xczxczxcz 发表于 2019-11-15 18:01

不用那么麻烦。象TS把二进制合并就可以了。

happy886rr 发表于 2019-11-17 18:01

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=224819&ptid=54211]1#[/url] [i]老刘1号[/i] [/b]
通过这个帖子,我学会了转码

yangjiangh 发表于 2020-4-2 00:15

真心不错 学习了

xp3000 发表于 2020-4-2 11:09

FFmpeg有没有办法精确给音频文件添加音效?而不是录音,需要时间0误差,比如关闭一个声道时候给伴奏混响。
电脑安装了DFX Audio Enhancer,这个必要。
graphstudionext不会弄,这个应该可以0误差,采集时候声卡功放几个输出统一用N合1连接到一个录音接口,然后软件不会弄了

老刘1号 发表于 2020-4-2 21:37

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=227757&ptid=54211]10#[/url] [i]xp3000[/i] [/b]


    ffmpeg适合批量粗略处理,这种比较精确的建议用专业的音频处理软件
上面有混音的例子

checking 发表于 2020-4-10 02:56

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=224819&ptid=54211]1#[/url] [i]老刘1号[/i] [/b]
这个教程帮大忙了,感谢

慕夜蓝化 发表于 2020-4-10 05:32

最近刚刚用到这个命令,感觉很强大。支持。

myacg 发表于 2020-4-20 15:12

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=224819&ptid=54211]1#[/url] [i]老刘1号[/i] [/b]
老刘!VOB无损去隔行扫描做不做的到?

aries215 发表于 2020-6-14 21:09

楼主不应该推荐H.265编码,授权复杂混乱。
我国有AVS2编码,算法比265好,授权简单实惠。

aries215 发表于 2021-9-2 10:25

[i=s] 本帖最后由 aries215 于 2021-9-2 10:50 编辑 [/i]

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=224819&ptid=54211]1#[/url] [i]老刘1号[/i] [/b]
我去年向FFmpeg发布者提交建议,已经内置国产AVS2/AVS3编码解码功能,支持8K/60P,解码速度大幅领先AV1:
[url]https://github.com/BtbN/FFmpeg-Builds/releases[/url]

[img]https://s3.jpg.cm/2021/09/02/IJfw3W.png[/img]

[img]https://ecosystem.avs.org.cn/wp-content/uploads/2019/12/PC%E7%AB%AF%E5%90%8C%E7%A0%81%E7%8E%87%E5%A4%9A%E7%BA%BF%E7%A8%8B%E8%A7%A3%E7%A0%81%E6%80%A7%E8%83%BD%E5%AF%B9%E6%AF%94.png[/img]

gesla 发表于 2023-4-10 16:38

[i=s] 本帖最后由 gesla 于 2023-4-10 21:34 编辑 [/i]

[code]echo
setlocal enabledelayedexpansion

rem 设置文件所在目录
set src_dir=E:\test\

rem filename用于存放目标文件名
set filename=""

cd /d %src_dir%
for %%a in ("CC*.flv") do ffmpeg -i "%%a" -bsf:v h264_mp4toannexb -f mpegts -c copy ".\%%~na.ts"
(for %%i in (CC*.ts) do @echo file '%%i') > 0.txt
for /f %%a in ('dir /od /tc /b CC*.flv') do (
    set filename=%%~na
    if not !filename! == ""  (
      goto ffmpeg
    )
)

:ffmpeg
ffmpeg -f concat -safe 0 -i 0.txt -c copy %filename%.mp4
pause[/code]在执行最后一步的时候,如果flv文件名中有中文字符就会无法合并,我明明加了-safe参数啊

搞明白了,txt需要UTF-8编码,fffmpeg才能识别中文字符,加了个chcp 65001就好了

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.