ffpaint原始数据可视化_批处理
若需要浮点音频f32格式,需自行链接libfdk_aac编译ffmpeg
win已编译:https://github.com/marierose147/ffmpeg_windows_exe_with_fdk_aac/releases
位深:https://zhuanlan.zhihu.com/p/543696756
@echo off setlocal enabledelayedexpansion chcp 65001 title ffpaint数据可视化 by nolca echo Tips:如图像ico,bmp/声音aiff,pcm,mid(midi),wav/数据包exe,win(某些RPG游戏),未加密、未压缩的原始数据更有律动 echo 若输入数据有音频部分,要使效果更好,需确定其存储方式:大端be/小端le,浮点Float/定点Unsigned,(响度)bit位深8/16/24/32/64 echo 所有网络协议都是采用big endian大端来传输数据,be也称网络字节序 echo. echo 一般无损wav/pcm都使用f32be,有损mp3则是u32be压缩后的 echo 若要支持f32be,需要自行链接libfdk_aac,构建编译ffmpeg echo 原理:ffmpeg -f u8 -ar 44100 -ac 2 -i "输入" -f rawvideo -pix_fmt rgb555 -r 25 -s 42x42 -i data.win -vf scale=w=32*iw:h=32*ih:sws_flags=neighbor -b:v 50000k "输出" echo. if not "%~1"=="" (set p=%~1 & set out=%~nx1 & goto beg) set /p p=文件: set out=%p:~4% set out=%out:\=,% :beg set bitrate=5000 d: cd "%~dp0" echo (确认)文件:%p% echo 将保存在批处理目录下,输出文件:%out% echo 视频比特率:%bitrate% echo 生成:q.自定义DIY ①次短大文件64x64/21.5fps/f32/双声道 ②最短64x64/43fps/f64/双 ③64x64/11fps/f32/单 echo ④次短大文件64x64/21.5fps/u32/双 ⑤64x64/11fps/u32/单 echo ⑥64x64/5.4fps/u8/双 ⑦32x32/21.5fps/u8/双 ⑧最慢小文件32x32/11fps/u8/单 choice /c q123456 >nul if %errorlevel%==1 goto diy if %errorlevel%==2 ( set vsize=64x64 & set fps=21.5301513671875 & set p_audio=f32be & set p_ac=2 ) if %errorlevel%==3 ( set vsize=64x64 & set fps=43.060302734375 & set p_audio=f64be & set p_ac=2 ) if %errorlevel%==4 ( set vsize=64x64 & set fps=10.76507568359375 & set p_audio=f32be & set p_ac=1 ) if %errorlevel%==5 ( set vsize=64x64 & set fps=21.5301513671875 & set p_audio=u32be & set p_ac=2 ) if %errorlevel%==6 ( set vsize=64x64 & set fps=10.76507568359375 & set p_audio=u32be & set p_ac=1 ) if %errorlevel%==7 ( set vsize=64x64 & set fps=5.37109375 & set p_audio=u8 & set p_ac=2 ) if %errorlevel%==8 ( set vsize=32x32 & set fps=21.484375 & set p_audio=u8 & set p_ac=2 ) if %errorlevel%==9 ( set vsize=32x32 & set fps=10.7421875 & set p_audio=u8 & set p_ac=1 ) echo 参数:-f rawvideo -pixel_format rgb32 -video_size %vsize% -framerate %fps% -i "%p%" -f %p_audio% -ar 44100 -ac %p_ac% -i "%p%" -sws_flags neighbor -s 1024x1024 -c:v h264_nvenc -c:a libfdk_aac "%out%_%fps:~0,2%.mp4" ffmpeg -f rawvideo -pixel_format rgb32 -video_size %vsize% -framerate %fps% -i "%p%" -f %p_audio% -ar 44100 -ac %p_ac% -i "%p%" -sws_flags neighbor -s 1024x1024 -c:v h264_nvenc -c:a libfdk_aac "%out%_%fps:~0,2%.mp4" goto beg :diy set /p a=视频长(默认128): if "%a%"=="" (set a=128) set /p b=视频宽(默认72): if "%b%"=="" (set b=72) set /p amp=放大几倍(默认5倍): if "%amp%"=="" (set amp=5) set /p ac=声道数(默认为2): if "%ac%"=="" (set ac=2) set /a aa=%a%*%amp% set /a bb=%b%*%amp% echo 音频播放速度:①最短f64 ②较短f32 ③较短u32 ④u24 ⑤较长u16 ⑥最长u8 ⑦实验性:alaw ⑧mulaw choice /c 12345678 >nul if %errorlevel%==1 (set p_audio=f64be & set r_audio=2822) if %errorlevel%==2 (set p_audio=f32be & set r_audio=1411) if %errorlevel%==3 (set p_audio=u32be & set r_audio=1411) if %errorlevel%==4 (set p_audio=u24be & set r_audio=1058) if %errorlevel%==5 (set p_audio=u16be & set r_audio=705) if %errorlevel%==6 (set p_audio=u8 & set r_audio=352) if %errorlevel%==7 (set p_audio=alaw & set r_audio=10) if %errorlevel%==8 (set p_audio=mulaw & set r_audio=10) set /a fps_cal=%r_audio%*31*%ac%/(%a%*%b%)+1 set /a tmp=%a%*%b% echo 帧速率 = %r_audio%x%ac%÷(%a%×%b%×0.032) = %r_audio%*31.25*%ac%/%tmp% ≈ %fps_cal%,其中视频面积%tmp% echo 若默认128x72/u32,则准确为4.7844780815972222222222222222222,双声道9.5689561631944444444444444444444 echo 要获得更精确的小数,请手动计算;否则可回车跳过仅计算至整数,但可能音画不同步 set /p fps=帧速率= if "%fps%"=="" (set fps=%fps_cal%) title 帧速率为%fps% by nolca echo 参数:-f rawvideo -pixel_format rgb32 -video_size %a%x%b% -framerate %fps% -i "%p%" -f %p_audio% -ar 44100 -ac 2 -i "%p%" -sws_flags neighbor -s %aa%x%bb% -c:v h264_nvenc -c:a libfdk_aac "%out%_%fps:~0,2%.mp4" ffmpeg -f rawvideo -pixel_format rgb32 -video_size %a%x%b% -framerate %fps% -i "%p%" -f %p_audio% -ar 44100 -ac 2 -i "%p%" -sws_flags neighbor -s %aa%x%bb% -c:v h264_nvenc -c:a libfdk_aac "%out%_%fps:~0,2%.mp4" goto beg ffmpeg -formats -b:v %bitrate%k ::(?<==f[0-9]{2})be
本文作者:Nolca
本文链接:https://www.cnblogs.com/nolca/p/17254588.html
版权声明:本作品采用 收益分享revenue sharing 许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步