Emotional Code|

Nolca

园龄:6年9个月粉丝:12关注:9

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 许可协议进行许可。

posted @   Nolca  阅读(16)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 ⏩intro 山姆精
  2. 2 🎸吉他 马叉
  3. 3 ☁升调 山姆精
  4. 4 🐦Flutter Virtual Riot/Madi
  5. 5 🎶纯律 山姆精
  6. 6 👻yeah~Color Bass! VR
⏩intro - 山姆精
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.