通过调用ffmpeg来将mp3和jpg合并为mp4视频-批处理。

 听歌练乐器的时候想同时看一下简谱,没找到好用的app, 自己动手写个批处理。只要把找到的歌(mp3文件)和谱(jpg文件)改成同名,并执行下面批处理,就能自动合并为视频。 音遍就歌,画面就是谱。 把常用的练习曲都合并一下。

@echo off&setlocal enabledelayedexpansion

REM### 找到上级目录下的所有 mp3 文件
for /R ..\ %%i in (*.mp3) do (

   echo  "%%~di%%~pi%%~ni.jpg" 
   echo  "%%i"   
   echo  "     =>>>>    "
   echo  "%%~di%%~pi%%~ni.mp4"
   echo ------------------------------------------------



   rem ##通过ffmpeg导出mp3的信息为log文件,然后解析log文件找到 duration 后面的时间值####
   rem ##############################################
   del /f /q ffmpeg-*.log
   ffmpeg.exe -report  -i  "%%i" 
   set  var1="100"
   for %%a in (ffmpeg-*.log) do (
          for /f "tokens=2  delims=, " %%b in ('findstr /b /c:"  Duration: " "%%~a"') do (  
                set var1=%%~b
          )
   rem #############################################

   )

  REM ######   时间(如 09:09:09) 转换成秒#########
  REM ##############################################
  set t=!var1!
  set th1=!t:~0,1!
  set th2=!t:~1,1!
  set tm1=!t:~3,1!
  set tm2=!t:~4,1!
  set ts1=!t:~6,1!
  set ts2=!t:~7,1!
  set /a s=!th1!*36000+!th2!*3600+!tm1!*600+!tm2!*60+!ts1!*10+!ts2!+1
  echo !s!
  REM ##############################################

  REM # 将与mp3同名的jpg,一起合并为同名的mp4文件。
  ffmpeg.exe -y  -f image2 -loop 1  -r 0.5   -i "%%~di%%~pi%%~ni.jpg" -i    "%%i"  -pix_fmt yuvj420p -t !var1! -vcodec mpeg4  "%%~di%%~pi%%~ni.mp4"

)
pause
发布了181 篇原创文章 · 获赞 34 · 访问量 73万+

猜你喜欢

转载自blog.csdn.net/fangkailove/article/details/104680706