2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WebMとWebAからmp4をつくる

Posted at

ffmpegでいけた

おぼえがき。

  • ffmpegを落としてきてパス通す → https://www.ffmpeg.org/
  • ↓のバッチファイルを作成
  • 作ったバッチにWebMファイルとWebAファイルをD&D → WebMのファイル名.mp4が生まれる
webm2mp4.bat
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
chcp 65001
cls

SET tmpMovieSrc="%1"
SET tmpAudioSrc="%2"

IF "%tmpMovieSrc%"=="" (
    GOTO :missingArgs
)
IF "%tmpAudioSrc%"=="" (
    GOTO :missingArgs
)
IF not "%3"=="" (
    GOTO :missingKinds
)

IF "%~x1"==".webm" (
    SET movieSource="%1"
    SET fileName=%~n1
) ELSE IF "%~x1"==".weba" (
    SET audioSource="%1"
) ELSE (
    GOTO :missingKinds
)

IF "%~x2"==".webm" (
    SET movieSource="%2"
    SET fileName=%~n1
) ELSE IF "%~x2"==".weba" (
    SET audioSource="%2"
) ELSE (
    GOTO :missingKinds
)

IF %movieSource%=="" ( GOTO :missingKinds )
IF %audioSource%=="" ( GOTO :missingKinds )

SET outputPath="%~dp0%fileName%.mp4"
SET /P ANSWER="変換を実行します。よろしいですか (Y/N)?"

IF /i {%ANSWER%}=={y} (GOTO :yes)
IF /i {%ANSWER%}=={yes} (GOTO :yes)

EXIT
:yes

SET CONTINUEANSWER=n
IF EXIST %outputPath% (
    SET /P CONTINUEANSWER="すでにファイルが存在します。上書きしてよろしいですか (Y/N)?"
    IF /i {!CONTINUEANSWER!}=={y} (GOTO :continueYes )
    IF /i {!CONTINUEANSWER!}=={yes} (GOTO :continueYes )
    EXIT
)

:continueYes

IF EXIST %outputPath% ( del %outputPath% )

ffmpeg -i %movieSource% -i %audioSource% -c:v h264_nvenc -c:a aac -map 0:v -map 1:a %outputPath%

echo 完了しました!
pause>nul
EXIT

:missingArgs
echo 動画ファイルと音声ファイルをまとめてドラッグアンドドロップしてください
pause>nul
EXIT /b 1

:missingKinds
echo .webmと.webaファイルをひとつずつドラッグアンドドロップしてください
pause>nul
EXIT /b 1

ダサいコードは見ないふりで。
キモはこの部分。

ffmpeg -i %movieSource% -i %audioSource% -c:v h264_nvenc -c:a aac -map 0:v -map 1:a %outputPath%

引数 意味
-i %movieSource% インプットに movieSource(WebM) を指定
-i %audioSource% インプットに audioSource(WebA) を指定
-c:v h264_nvenc 変換後動画フォーマットに h264_nvenc を指定
(グラボ使えないなら h264 にかえる)
-c:a aac 変換後音声フォーマットに aac を指定
-map 0:v 0番目のインプット(WebM)の映像ストリーム
全てを変換後の映像ソースに割り当て
-map 1:a 1番目のインプット(WebA)の音声ストリーム
全てを変換後の音声ソースに割り当て
%outputPath% 出力先を指定

参考にさせていただいた神記事

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?