⧅ffmpeg DivX HomeTheater形式の生成 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(音声ファイルを抽出する)
(ffmpegで変換したファイルの情報を見る)
 
1行: 1行:
 
[[⧅ffmpeg]]に戻る
 
[[⧅ffmpeg]]に戻る
 +
 +
[[⧅ffmpeg DivX HomeTheater形式の生成 2]]へ
 
== '''概要''' ==
 
== '''概要''' ==
 
 DivX HomeTheater形式に対応した車載オーディオやレコーダは結構ある感じです。この形式に自分の持っている音楽映像を個人的に変換して楽しむという事や自分で撮影した動画を編集して、話している内容にハード字幕を付けたりすることが出来ると嬉しい人は多いかもしれないと思って書く記事です。
 
 DivX HomeTheater形式に対応した車載オーディオやレコーダは結構ある感じです。この形式に自分の持っている音楽映像を個人的に変換して楽しむという事や自分で撮影した動画を編集して、話している内容にハード字幕を付けたりすることが出来ると嬉しい人は多いかもしれないと思って書く記事です。
12行: 14行:
 
 力説しましたが、必要の無い人には、意味ないわな。手軽にたくさんの映像を持ち運びたいというニーズとデバイスが無いと全く興味の無い話です。
 
 力説しましたが、必要の無い人には、意味ないわな。手軽にたくさんの映像を持ち運びたいというニーズとデバイスが無いと全く興味の無い話です。
  
 手順としては、動画を作る。動画の形式情報を確認する。音声ファイルだけ分離する。音声ファイルを編集する。動画ファイルのass形式字幕を作る。動画から、使いたい領域にしぼるクロップのいう処理をする。動画サイズを再生するデバイスのサイズに合わせて大きさを変える。場合によっては上下左右に黒帯を付ける。そして、生成した字幕をくっつける。最後にHomeTheater形式にあったDivX形式(同じmpeg4形式でもDivX形式じゃないと駄目です。)の動画にDivX形式(同じmp3でもDivX形式のmp3でないと微妙な違いがあるため駄目です)の音声に変換しつつ、くっつける。この時fpsは30fpsにAspect比16:9から4:3の映像にします。更に、動画と音声の音声をCBRに近づける工夫をします。CBRなんてものは幻想なのですが、CBRと言えるものにします。
+
 手順としては、動画を作る。動画の形式情報を確認する。音声ファイルだけ分離する。音声ファイルを編集する。動画ファイルのass形式字幕を作る。動画から、使いたい領域にしぼるクロップのいう処理をする。動画サイズを再生するデバイスのサイズに合わせて大きさを変える。場合によっては上下左右に黒帯を付ける。そして、生成した字幕をくっつける。最後にHomeTheater形式にあったDivX形式(同じmpeg4形式でもDivX形式じゃないと駄目です。)の動画にDivX形式(同じmp3でもDivX形式のmp3でないと微妙な違いがあるため駄目です)の音声に変換しつつ、くっつける。この時fpsは30fpsにAspect比16:9の映像にします。更に、動画と音声の音声をCBRに近づける工夫をします。CBRなんてものは幻想なのですが、CBRと言えるものにします。
  
  
86行: 88行:
  
  
===ffmpegで変換したファイルの情報を見る===
+
===ffmpegで変換したいファイルの情報を見る===
 
 まずはiPhoneで録画したものがコチラ。
 
 まずはiPhoneで録画したものがコチラ。
 
<syntaxhighlight2 lang="bash">
 
<syntaxhighlight2 lang="bash">
121行: 123行:
 
 上記の情報から動画は、avc1のH264(High)形式(H.264とMPEG-4 AVCは同じ意味で、H.264はITU-T(:International Telecommunication Union Telecommunication Standardization Sector国際電気通信連合の通信部門)での呼び方で、MPEG-4 AVC(Advanced Audio Coding)という名称の圧縮方式にあなっています。)で750x1334pxのサイズでビットレート、4826kbpsの24.37fpsというヌルヌルの動作をする動画形式であり、24.37fpsという中途半端なことこの上無い形式であることがわかります。何気に高性能だわiPhone。
 
 上記の情報から動画は、avc1のH264(High)形式(H.264とMPEG-4 AVCは同じ意味で、H.264はITU-T(:International Telecommunication Union Telecommunication Standardization Sector国際電気通信連合の通信部門)での呼び方で、MPEG-4 AVC(Advanced Audio Coding)という名称の圧縮方式にあなっています。)で750x1334pxのサイズでビットレート、4826kbpsの24.37fpsというヌルヌルの動作をする動画形式であり、24.37fpsという中途半端なことこの上無い形式であることがわかります。何気に高性能だわiPhone。
  
*tbr = tbrはVideoStreamのr_time_baseという値で実ベースフレームレートです。ビデオフレームレートを探すときに得られる値です。すべてのタイムスタンプを正確に表現できる最小フレームレートで、キャプチャ動画では60tbr(time base rate)になっていて、60fpsで再生されたいとする設定がされています。
+
tbr,tbn,tbcは数値の逆数の値が本当の数値の意味するモノになります。
*tbn =VideoStreamのtime_baseはフレーム・タイム・スタンプが表される基本的な時間単位 (秒単位)です。キャプチャ動画では600秒になっています。
+
*tbr = tbrはVideoStreamのr_time_baseという値で実ベースフレームレートです。ビデオフレームレートを探すときに得られる値です。すべてのタイムスタンプを正確に表現できる最小フレームレートで、サンプルのキャプチャ動画では60tbr(time base rate)になっていて、これの逆数が1フレームあたりの秒数であることを今しています。このタイムスタンプに従うならば使うには60fpsで再生されたいとする設定がされています。
*tbc =AVCodecContext>time_baseは特定のストリームに使用されるコーデックのAVCodecContextのタイムベースです。キャプチャ動画では1200秒になっています。
+
*tbn =VideoStreamのtime_baseはフレーム・タイム・スタンプが表される基本的な時間単位 (秒単位)です。サンプルのキャプチャ動画では1/600秒になっています。 フレームレートの10分の1の時間がbaseになっています。
 +
*tbc =AVCodecContext>time_baseは特定のストリームに使用されるコーデックのAVCodecContextのタイムベースです。サンプルのキャプチャ動画では1/1200秒になっています。フレームレートの20分の1です。
  
 訳の分からない値が入っているので、適当な値が規定値で設定されているようです。
 
  
 
 こんな複雑な動画形式上手くデコードできるプレイヤーは、かなりの新進気鋭のソフトウェアだね。古いデバイスとかだと音ズレとかしやすい。そして音声はmp4aのaac(LC:Low Complexity)形式(mp4aはmp4のAudioコンテナで、その中にaac=Advanced Audio CodingのLC形式が格納されているイメージで良いです。 )でビットレート126kbpsでサンプリング周波数44.1kHz。これまた中途半端なビットレートです。普通は128kbpsとかが多い気がします。癖が強いな。
 
 こんな複雑な動画形式上手くデコードできるプレイヤーは、かなりの新進気鋭のソフトウェアだね。古いデバイスとかだと音ズレとかしやすい。そして音声はmp4aのaac(LC:Low Complexity)形式(mp4aはmp4のAudioコンテナで、その中にaac=Advanced Audio CodingのLC形式が格納されているイメージで良いです。 )でビットレート126kbpsでサンプリング周波数44.1kHz。これまた中途半端なビットレートです。普通は128kbpsとかが多い気がします。癖が強いな。
160行: 162行:
 
 こちらもh264ですね。15fps。少なすぎる。カクカクだな。Pro版はもっとぬるぬるなのかな。ビットレートは5kbps。少なっ!AudioもiPhoneと同じだ。aac mp4aね。サンプリングレートは3.2kHz。低いし、あんまり見ないレートだな。monoサウンドらしい。ビットレートは74kbps。低めだな。これもProならもう少しいい音になるのかな?それとも設定でいじれるのに自分が気付いていないだけか。この形式の動画を生成したエンジンの名前だけが違うみたいだ。screenpressoは大企業相手にも販売しているソフトウェアなので、自前のコーデックなのかもしれない。
 
 こちらもh264ですね。15fps。少なすぎる。カクカクだな。Pro版はもっとぬるぬるなのかな。ビットレートは5kbps。少なっ!AudioもiPhoneと同じだ。aac mp4aね。サンプリングレートは3.2kHz。低いし、あんまり見ないレートだな。monoサウンドらしい。ビットレートは74kbps。低めだな。これもProならもう少しいい音になるのかな?それとも設定でいじれるのに自分が気付いていないだけか。この形式の動画を生成したエンジンの名前だけが違うみたいだ。screenpressoは大企業相手にも販売しているソフトウェアなので、自前のコーデックなのかもしれない。
  
 
+
==='''音声ファイルを抽出する'''===
===音声ファイルを抽出する===
+
 
 動画づくりの場合は撮影した音声ファイルを編集したい人もいると思うので、効果音なんかを追加することを想定してまずは映像から音声だけを抽出する処理をやってみます。大丈夫です。後からくっつけれるようにします。ここからはどちらの動画も同じ形式なので、一つのファイルだけで説明をします。
 
 動画づくりの場合は撮影した音声ファイルを編集したい人もいると思うので、効果音なんかを追加することを想定してまずは映像から音声だけを抽出する処理をやってみます。大丈夫です。後からくっつけれるようにします。ここからはどちらの動画も同じ形式なので、一つのファイルだけで説明をします。
 +
 +
後日記:
 +
 +
 やべぇ、ここから、モノラル音源作成完了までの手順いらなかった。めっちゃながながと書いたのに。でも消さないわ。だって何かの役に立つかもしれないから。Sub Station Alphaというアプリケーションを使って字幕作る場合と混同してた。でもSub Station Alphaで使える技術だし、なおのこと必要な記事かもね。でもSubStationAlphaでは符号化bit深度(8bitならサンプリング音量レベルの分解能を256段階にするという意味。32bitはintとfloatがある。浮動小数点数)を8bitにしないと駄目でした。もう一工夫必要でした。bit深度は大きければいいというものではありませんが、8bitはさすがに音楽としては役不足です。なのでFL Studioでは8bitにできませんでした。会話だと話が聞き取れればいいので、8bitでもいいですけどね。ー後日記、ここまでー
  
  
179行: 184行:
 
*webm形式の動画ではvorbisかopus
 
*webm形式の動画ではvorbisかopus
  
 と、いったように制限はありますが、
+
 と、いったように動画ファイル自体には組み込める形式の制限はあります。
  
 オーディオ形式として指定できるキーワード以下の通りです。拡張子の情報を付けましたが、拡張子なんてものはソフトウェア側のさじ加減である部分もあります。一つのフォーマット形式を複数のソフトウェアの拡張子が対応していることは多いです。例えばRealAudioというソフトウェアで、拡張子*.raとなっていれば、中身の形式がaacでエンコードされた形式なら読み込めるということを意味しています。*.aacという拡張子のままの方が都合が良いソフトウェアもあります。固有の拡張子にしないと読み込めないソフトウェアもあるかもしれません。キーワード名(エンコード名)の後ろに、代表的な拡張子を記載しておきます。逆に、対応する拡張子であっても、ソフトウェアによっては読み込めない形式もあります。その拡張子が対応しているソフトウェアだからといって絶対開けるということはありません。拡張子とその形式の組み合わせが揃ってこそ開けます。
+
 
<syntaxhighlight2 lang="bash">
+
 抽出(Extract)は、自由な形式で抜き出せます。オーディオ形式として指定できるキーワード以下の通りです。拡張子の情報を付けましたが、拡張子なんてものはソフトウェア側のさじ加減である部分もあります。一つのフォーマット形式を複数のソフトウェアの拡張子が対応していることは多いです。例えばRealAudioというソフトウェアで、拡張子*.raとなっていれば、中身の形式がaacでエンコードされた形式なら読み込めるということを意味しています。*.aacという拡張子のままの方が都合が良いソフトウェアもあります。固有の拡張子にしないと読み込めないソフトウェアもあるかもしれません。キーワード名(エンコード名)の後ろに、代表的な拡張子を記載しておきます。逆に、対応する拡張子であっても、ソフトウェアによっては読み込めない形式もあります。その拡張子が対応しているソフトウェアだからといって絶対開けるということはありません。拡張子とその形式の組み合わせが揃ってこそ開けます。
 +
 +
====''' 利用できるオーディオコーデック '''====
 +
<syntaxhighlight2 lang="text">
 
DivX の場合は libmp3lame .mp3
 
DivX の場合は libmp3lame .mp3
 ※他の形式だとDivX規格を満たしません。DivX認証を受けている機器では基本的には駄目です。
+
 ※他の形式だとDivX規格を満たしません。DivX認証を受けている機器では、
 パソコンで鳴らす分にはdecoderさえあれば、再生してくれる事が多いです。
+
  基本的には駄目です。パソコンで鳴らす分にはdecoderさえあれば、
 +
  再生してくれる事が多いです。
  
  
aac(*.m4a,*aac/*.mka(matroska Audioファイル)/*.ra*,*..rm,*.rmvb(RealAudioファイル))
+
aac(*.m4a,*aac/*.mka(matroska Audioファイル)/*.ra*,*..rm,
 +
  *.rmvb(RealAudioファイル))
 
ac3、ac3_fixed(.ac3/*.avi/*.vob/*.m2ts/*.mp4)
 
ac3、ac3_fixed(.ac3/*.avi/*.vob/*.m2ts/*.mp4)
 
adpcm_adx(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)
 
adpcm_adx(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)
194行: 204行:
 
adpcm_g726、g726(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)
 
adpcm_g726、g726(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)
 
adpcm_g726le、g726le(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)
 
adpcm_g726le、g726le(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)
adpcm_ima_qt、(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff) Apple QuickTime用に開発されたADPCM Encoder
+
adpcm_ima_qt、(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)  
adpcm_ima_ssi(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)Simon&Schuster(サイモン&シュフスター) Intaractive出版物用に開発されたADPCM Encoder
+
  Apple QuickTime用に開発されたADPCM Encoder
 +
adpcm_ima_ssi(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)
 +
  Simon&Schuster(サイモン&シュフスター) Intaractive出版物用に
 +
  開発されたADPCM Encoder
 
adpcm_ima_wav(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)
 
adpcm_ima_wav(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)
adpcm_ms(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)MicrosoftのSoftware用に開発されたADPCM Encoder
+
adpcm_ms(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)
adpcm_swf(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)Macromedia Shockwaver用に開発されたADPCM Encoder
+
  MicrosoftのSoftware用に開発されたADPCM Encoder
adpcm_yamaha(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)Yamahaのオーディオ機器用に開発されたADPCM Encoder
+
adpcm_swf(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)
 +
  Macromedia Shockwaver用に開発されたADPCM Encoder
 +
adpcm_yamaha(*.wav/*.mov/*.mkv/*.mka/*.brstm/*.aif/*.aiff)
 +
  Yamahaのオーディオ機器用に開発されたADPCM Encoder
 
alac(*.m4a/*.mov/*.alac)Apple Lossles Audio Codec
 
alac(*.m4a/*.mov/*.alac)Apple Lossles Audio Codec
amr_nb、 libopencore_amrnb(*.amr)Adaptive Multi-Rate Narrow Band ノキア、エリクソン、シーメンスで共同開発。電話用音声として策定
+
amr_nb、 libopencore_amrnb(*.amr)Adaptive Multi-Rate Narrow Band  
amr_wb、libvo_amrwbenc(*.awb)Adaptive Multi-Rate Wide Band ノキア、エリクソン、シーメンスで共同開発。電話用音声形式として策定
+
  ノキア、エリクソン、シーメンスで共同開発。電話用音声として策定
aptx(*.aptx) Audio Processing Technology for Bluetooth 半導体ファブレス事業を行うクアルコム社が策定したBluetooth通信用の形式
+
amr_wb、libvo_amrwbenc(*.awb)Adaptive Multi-Rate Wide Band  
aptx_hd(*.aptx) Audio Processing Technology HD for Bluetooth 半導体ファブレス事業を行うクアルコム社が策定したBluetooth通信用の形式
+
  ノキア、エリクソン、シーメンスで共同開発。
 +
  電話用音声形式として策定
 +
aptx(*.aptx) Audio Processing Technology for Bluetooth  
 +
  半導体ファブレス事業を行うクアルコム社が策定した
 +
  Bluetooth通信用の形式
 +
aptx_hd(*.aptx) Audio Processing Technology HD for Bluetooth  
 +
  半導体ファブレス事業を行うクアルコム社が策定した
 +
  Bluetooth通信用の形式
 
comfortnoise 不明
 
comfortnoise 不明
dts、dca(*.dts)dts社が策定したdolbyより後発の規格です。普及率ではdolbyが勝ります。
+
dts、dca(*.dts)
  古いDVDプレイヤーでは再生できない事があります。音だけの再生で見るとDVD-Audioという規格でしたが、近年はSA-CD(SuperAudioCD)が5.1ch音楽の規格として普及しています。
+
  dts社が策定したdolbyより後発の規格です。
  SA-CDを個人で作ることは出来ません。特殊なSA-CDもどきは作れてごく一部で対応した再生機器があります。
+
  普及率ではdolbyが勝ります。
eac3(*.eac3) Dolby社が開発したDolby Digital Plus形式 VLC media playerで再生できます。
+
  古いDVDプレイヤーでは再生できない事があります。
flac(*.flac/*.fla(Adobe Animateと重複)/*.oga/*.ogg/*.mkv/*.mka)Free Lossless Audio Codec  
+
  音だけの再生で見るとDVD-Audioという規格でしたが、
g723_1(*.?) G.723.1は狭帯域幅の音声向けコーデック そのままの形式でどうやって聞くのか分からないっす。
+
  近年はSA-CD(SuperAudioCD)が5.1ch音楽の規格として普及しています。
gsm、libgsm(*.?) global system for mobile communication イギリスの通信会社が策定した2G世代の通話音声コーデック そのままの形式でどうやって聞くのか分かりません。
+
  SA-CDを個人で作ることは出来ません。
gsm_ms、libgsm_ms(*.?) gsmのマイクロソフト策定版
+
  特殊なSA-CDもどきは作れてごく一部で対応した再生機器があります。
ilbc、libilbc(*.?) 米国Global IP Solutionsが策定した音声用コーデック そのままの形式でどうやって聞くのかわかりません。実際にGizmo5、Ekiga、QuteCom、Google トーク、Yahoo! Messengerで使われている形式
+
  dsdという規格です。
mlp(*.?)Advanced Audioというブランドを持つMeridian Lossless Packing形式 はMeridian Audio社が作成したもので、Blu-rayやHD-DVDプレイヤーに必ず搭載されているコーデックの一つ。
+
eac3(*.eac3)
mp2、mp2fixed、libtwolame(*.mp2/.mpc) mp3の全身でVideo-CD(CompactDiscDigitalVideo)に使われている形式のオーディオ。mpeg2動画は*.m2pという名前になる。
+
  Dolby社が開発したDolby Digital Plus形式で、
 +
  VLC media playerで再生できます。
 +
flac(*.flac/*.fla(拡張子はAdobe Animateと重複)
 +
  /*.oga/*.ogg/*.mkv/*.mka)Free Lossless Audio Codec  
 +
g723_1(*.?)  
 +
  G.723.1は狭帯域幅の音声向けコーデック  
 +
  そのままの形式でどうやって聞くのか分からないっす。
 +
gsm、libgsm(*.?) global system for mobile communication  
 +
  イギリスの通信会社が策定した2G世代の通話音声コーデック 
 +
  そのままの形式でどうやって聞くのか分かりません。
 +
gsm_ms、libgsm_ms(*.?)  
 +
  gsmのマイクロソフト策定版
 +
ilbc、libilbc(*.?)  
 +
  米国Global IP Solutionsが策定した音声用コーデック 
 +
  そのままの形式でどうやって聞くのかわかりません。実際にGizmo5、
 +
  Ekiga、QuteCom、Google トーク、Yahoo! Messengerで
 +
  使われている形式
 +
mlp(*.?)Advanced Audioという
 +
  ブランドを持つMeridian Lossless Packing形式
 +
  Meridian Audio社が作成したもので、Blu-rayやHD-DVDプレイヤーに
 +
  必ず搭載されているコーデックの一つ。
 +
mp2、mp2fixed、libtwolame(*.mp2/.mpc)  
 +
  mp3の前身でVideo-CD(CompactDiscDigitalVideo)
 +
  使われている形式のオーディオ。
 +
  mpeg2動画は*.m2pという名前になる。
 
mp3、libmp3lame、libshine(*.mp3)
 
mp3、libmp3lame、libshine(*.mp3)
nellymoser(.asao)Asaoはネリモーザー社が策定しマクロメディア社にライセンスされた形式です。FLASH 6以降のバージョンで対応する形式です。
+
  最も有名なオーディオ規格です。
opus、libopus(*.ogg/*.opus)IETF(The Internet Engineering Task Force:インターネット技術特別調査委員会) によって策定された音声ファイル。
+
nellymoser(.asao)
pcm_alaw(*.wav/*.pcm/*.raw)G.711※G.711のような形式はITU-Tが策定する規格。 A-law。
+
  Asaoはネリモーザー社が策定しマクロメディア社に
  PCMはwavという拡張子がよく付けられるが解釈できるかどうかはソフトウェア次第。
+
  ライセンスされた形式です。
 +
  FLASH 6以降のバージョンで対応する形式です。
 +
opus、libopus(*.ogg/*.opus)IETF(The Internet Engineering Task Force:
 +
  インターネット技術特別調査委員会) によって策定された音声ファイル。
 +
pcm_alaw(*.wav/*.pcm/*.raw)G.711※G.711のような形式は
 +
  ITU-Tが策定する規格。 A-law。
 +
  PCMはwavという拡張子がよく付けられるが解釈できるかどうかは
 +
  ソフトウェア次第。
 
  多数のエンコードを使い始めると謎の箱っていうイメージになっていく。
 
  多数のエンコードを使い始めると謎の箱っていうイメージになっていく。
  特殊なPCMエンコーダの利用には手を出さない方がいい。ffmpeg Misterなら、操り切れますけどね。そんな人、一握りでしょう。
+
  特殊なPCMエンコーダの利用には手を出さない方がいい。
 +
  ffmpeg Misterなら、操り切れますけどね。そんな人、一握りでしょう。
 
pcm_dvd(*.wav/*.pcm/*.raw) dvd向けのpcm
 
pcm_dvd(*.wav/*.pcm/*.raw) dvd向けのpcm
pcm_f32be(*.wav/*.pcm/*.raw)  32bit浮動小数点量子化ビッグエンディアン※ビッグエンディアンは8ビット符号化されたサンプルブロックをメモリ番地の小さい方から値を詰めていく方式。
+
pcm_f32be(*.wav/*.pcm/*.raw)  32bit浮動小数点量子化ビッグエンディアン
  リトルは逆で割り当てられたメモリ番地の大きいところから埋めていきます。
+
  ※ビッグエンディアンは8ビット符号化されたサンプルブロックを
  じゃあビッグエンディアンが普通な感じだし、ビッグエンディアンが幅を効かせるに決まってるじゃんと思うかもしれませんが、Windowsはリトルエンディアンです。
+
  メモリ番地の小さい方から値を詰めていく方式。
  32bitの場合は8bitの塊が4つで構成されますが、その4つがメモリ番地の大きい方から埋められるのがリトルエンディアンです。一長一短なのです。
+
  リトルは逆で割り当てられたメモリ番地の大きいところから
 +
  埋めていきます。
 +
  じゃあビッグエンディアンが普通な感じだし、ビッグエンディアンが
 +
  幅を効かせるに決まってるじゃんと思うかもしれませんが、
 +
  Windowsはリトルエンディアンです。
 +
  32bitの場合は8bitの塊が4つで構成されますが、その4つがメモリ番地の
 +
  大きい方から埋められるのがリトルエンディアンです。一長一短なのです。
 +
  ビットの取り出し手順や切り捨ての手順で処理スピードに差がある
 +
  ということを意味していますが、それが一長一短なのです。
 
pcm_f32le(*.wav/*.pcm/*.raw) 32bit浮動小数点量子化リトルエンディアン
 
pcm_f32le(*.wav/*.pcm/*.raw) 32bit浮動小数点量子化リトルエンディアン
 
pcm_f64be(*.wav/*.pcm/*.raw) 64bit浮動小数点量子化ビッグエンディアン
 
pcm_f64be(*.wav/*.pcm/*.raw) 64bit浮動小数点量子化ビッグエンディアン
 
pcm_f64le(*.wav/*.pcm/*.raw) 64bit浮動小数点量子化リトルエンディアン
 
pcm_f64le(*.wav/*.pcm/*.raw) 64bit浮動小数点量子化リトルエンディアン
pcm_mulaw(*.wav/*.pcm/*.raw) μ-lawアルゴリズム 国際通話ではA-lawアルゴリズムが優先される仕組みになっている。
+
pcm_mulaw(*.wav/*.pcm/*.raw) μ-lawアルゴリズム 
 +
  国際通話ではA-lawアルゴリズムが優先される仕組みになっている。
 
pcm_s16be(*.wav/*.pcm/*.raw) 符号付き16bitビッグエンディアン
 
pcm_s16be(*.wav/*.pcm/*.raw) 符号付き16bitビッグエンディアン
 
pcm_s16be_planar(*.wav/*.pcm/*.raw) 符号付き16bitビッグエンディアン
 
pcm_s16be_planar(*.wav/*.pcm/*.raw) 符号付き16bitビッグエンディアン
pcm_s16le(*.wav/*.pcm/*.raw) 符号付き16bitビッグエンディアン
+
pcm_s16le(*.wav/*.pcm/*.raw) 符号付き16bitリトルエンディアン
 
pcm_s16le_planar(*.wav/*.pcm/*.raw) 符号付き16bitリトルエンディアン
 
pcm_s16le_planar(*.wav/*.pcm/*.raw) 符号付き16bitリトルエンディアン
 
pcm_s24be(*.wav/*.pcm/*.raw) 符号付き24bitビッグエンディアン
 
pcm_s24be(*.wav/*.pcm/*.raw) 符号付き24bitビッグエンディアン
pcm_s24daud(*.wav/*.pcm/*.raw) 符号付き24bitビッグエンディアン 5.1ch D-Cinema向け
+
pcm_s24daud(*.wav/*.pcm/*.raw) 符号付き24bitビッグエンディアン  
 +
  5.1ch D-Cinema向け
 
pcm_s24le(*.wav/*.pcm/*.raw) 符号付き24bitリトルエンディアン
 
pcm_s24le(*.wav/*.pcm/*.raw) 符号付き24bitリトルエンディアン
 
pcm_s24le_planar(*.wav/*.pcm/*.raw) 符号付き24bitリトルエンディアン
 
pcm_s24le_planar(*.wav/*.pcm/*.raw) 符号付き24bitリトルエンディアン
  ※Planarはステレオ音声がブロックの単位で左の音声右の音声というカタチなっている。
+
  ※Planarはステレオ音声がブロックの単位で左の音声右の音声という
  通常のものは左右左右みたいにデータが交互に並ぶ。要するにデータの並べ方が違うだけ。
+
  カタチなっている。
 +
  通常のものは左右左右みたいにデータが交互に並ぶ。要するにデータの
 +
  並べ方が違うだけ。
 
pcm_s32be(*.wav/*.pcm/*.raw) 符号付き32bitビッグエンディアン
 
pcm_s32be(*.wav/*.pcm/*.raw) 符号付き32bitビッグエンディアン
 
pcm_s32le(*.wav/*.pcm/*.raw) 符号付き32bitリトルエンディアン
 
pcm_s32le(*.wav/*.pcm/*.raw) 符号付き32bitリトルエンディアン
257行: 324行:
 
pcm_u32le(*.wav/*.pcm/*.raw) 符号無し32bitリトルエンディアン
 
pcm_u32le(*.wav/*.pcm/*.raw) 符号無し32bitリトルエンディアン
 
pcm_u8(*.wav/*.pcm/*.raw) 符号無し8bit
 
pcm_u8(*.wav/*.pcm/*.raw) 符号無し8bit
pcm_vidc(*.wav/*.pcm/*.raw) Acorn Archimedesどんぐりアルキメデス社のコンピュータで使われたVIDCエンハンサー向けPCM
+
pcm_vidc(*.wav/*.pcm/*.raw) 
ra_144、real_144(*.ra/*.rm/*.rmvb/*.ram/*.smil) 米国リアルネットワークス社が策定したもの。*.rmvbはRealMedia variable bitrateの意で*.rmはビデオ形式。*.ramと*.smilはストリーミング形式。リアルオーディオビデオ自体は他の形式の音声も取り込める。
+
  Acorn Archimedesアコーンアルキメデス社のコンピュータで
roq_dpcm  id Software社が策定したマルチメディア ファイル(DPCM(差分PCM)形式)
+
  使われたVIDCエンハンサー向けPCM
s302m(*.?)SMPTE(Society of Motion Picture and Television Engineers:米国映画テレビ技術者協会)が策定した形式。LPCM/TSの規格で高度衛生デジタル放送の音声符号化形式。SMPTEはタイムコードを付けることに関する技術を策定した機関でもあります。
+
ra_144、real_144(*.ra/*.rm/*.rmvb/*.ram/*.smil)  
 +
  米国リアルネットワークス社が策定したもの。
 +
  *.rmvbはRealMedia variable bitrateの意で*.rmはビデオ形式。
 +
  *.ramと*.smilはストリーミング形式。
 +
  リアルオーディオビデオ自体は他の形式の音声も取り込める。
 +
roq_dpcm   
 +
  id Software社が策定したマルチメディア ファイル(DPCM(差分PCM)形式)
 +
s302m(*.?)
 +
  SMPTE(Society of Motion Picture and Television Engineers:
 +
  米国映画テレビ技術者協会)が策定した形式。LPCM/TSの規格で
 +
  高度衛生デジタル放送の音声符号化形式。
 +
  SMPTEはタイムコードを付けることに関する技術を
 +
  策定した機関でもあります。
 
sbc(*.wav)Bluetoothの伝送で使われるcodecです。
 
sbc(*.wav)Bluetoothの伝送で使われるcodecです。
sonic(*.?)不明のcodec
+
sonic(*.?)調査しましたが出所不明のcodec
sonicls(*.?)不明のcodec。lossless形式らしい。
+
sonicls(*.?)同じく不明のcodec。lossless形式らしい。
speex(*.spx)Voice of IP。ネット音声形式でOpusが上回るとして、技術をopusに移行したと等しいく。廃止方向になっている。
+
speex(*.spx)
 +
  Voice of IP(ネット通話音声形式)でOpusが上回るとして、
 +
  技術はopusに移行されている。opusがあるので、
 +
  廃止方向になっている。
 
truehd(*.mlp)ドルビーラボトリーズ社策定のTrueHDは可逆音声コーデック
 
truehd(*.mlp)ドルビーラボトリーズ社策定のTrueHDは可逆音声コーデック
tta(*.tta/*.mkv/*.mka)The True Audioは可逆圧縮でMatroskaに対応で対応している。
+
tta(*.tta/*.mkv/*.mka)The True Audioは可逆圧縮で
  matroska(マトロスカ)はマルチメディアコンテナフォーマット(*.mkv/*.mka/*.mks/*.mk3d/)
+
  Matroskaに対応している。
 +
  matroska(マトロスカ)はマルチメディアコンテナフォーマット
 +
  (*.mkv/*.mka/*.mks/*.mk3d/)
 
vorbis(*.ogg) Xiph.orgが開発した非可逆音声 liborbisの仲間。
 
vorbis(*.ogg) Xiph.orgが開発した非可逆音声 liborbisの仲間。
 
wavpack(*.wv) 可逆圧縮コーデック *.wavとは異なるもの
 
wavpack(*.wv) 可逆圧縮コーデック *.wavとは異なるもの
 
wmav1(*.wma)WindowsMediaAudioはマイクロソフトの策定した形式
 
wmav1(*.wma)WindowsMediaAudioはマイクロソフトの策定した形式
wmav2(*.wma)WindowsMediaAudioビットストリームの構文、または圧縮アルゴリズムをマイナーチェンジしたと言われている。
+
wmav2(*.wma)WindowsMediaAudioのビットストリームの
 +
  構文や圧縮アルゴリズムをマイナーチェンジしたと言われている。
 +
</syntaxhighlight2>
  
 +
 +
 やべぇ、この記事。書き始めるんじゃなかったっていう位、深すぎる。対応しているファイル形式多すぎてヤバイ。よくわからないものを放置して貼るのも嫌だし、わからない奴は逐一、どういうものか調べた。Wikipediaだけでは分からない全貌だった。いろんなところ彷徨った。やべぇ。生きて帰ってこれただけマシなネットサーフィンだった。いい波来てたけど乗りこなせなかった。そんな感じ。
 +
 +
 
 +
 +
==='''音声ファイルを編集する'''===
 +
 動画の音声ファイルを編集する必要は無い場合もありますが、ここでは自分で映像に字幕を付けることを目的とした音声ファイル編集をします。音が小さいので全体をノーマライズにより音が割れない程度に全体の音量の割合を上げることをしてみたり、車で映像を見るので音楽より音声を引き立てる編集とか、全体の音量に激しい差があって一定の心地よい音量にした場合、一部の場面で音が全く聞こえないなどの問題を解決する音圧を上げるということや動画配信のために効果音を付け足したりする編集はそれぞれでやってもらえればと思います。
 +
 +
 +
 字幕をつけることを目的とした音声ファイル編集とは何?という疑問があると思いますが、音や会話に合わせて字幕をつけるには音と映像を見ながら字幕を付けていく作業になると思いますが、フリーの字幕作成アプリでは、モノラル音声しか対応しないといった制限があったりするので、前の作業で抜き出したAudioファイルがステレオ音声の場合にモノラルに変換する作業について説明します。
 +
 +
 +
 2つの方法を示します。わかる人は他の方法でも出来ます。
 +
 +
*ffmpegでのStereo→mono変換やLR分離やLR統合をする。
 +
*完全FreeのWave編集ツール「SoundEngine Free」を使って、LR分離を行う。
 +
*FL StudioのEdisonという波形編集ツールでLR分離を行い。LR統合をする。
 +
 +
 +
 SoundEngineの方法では左か右のどちらかしか使わないMono音声なので、ひょっとしたら振り切ったパン(例えば左側の音量100%右は0%のトラックがある。あるいはその逆)をしている音声があった場合聞き取れなくなる懸念はあります。後者は完全に両方の音声を活かしたmono音声なので欠落が少ないはずです。
 +
 +
 +
===='''ffmpeg'''====
 +
 モノラル変換もffmpegでやれます。モノラルは英語でmonoで通じますが、正式にはmonauralあるいはmonophonicです。そしたらmonaじゃねぇの?と思うかもしれませんが、monoです。あらゆる場面でmonoです。monatoneとか言いません。
 +
 +
 ffmpegによるステレオ→モノラル変換。
 +
<syntaxhighlight2 lang="bash">
 +
ffmpeg -i inputStereo.mp3 -ac 1 outputMonaural.mp3
 
</syntaxhighlight2>
 
</syntaxhighlight2>
 +
 逆も出来ます。
  
 +
 ffmpegによるモノラル→ステレオ変換。
 +
<syntaxhighlight2 lang="bash">
 +
ffmpeg -i inputMnoaural.mp3 -ac 2 outputMono2Stereo.mp3
 +
</syntaxhighlight2>
 +
 この時点では両チャンネルが同じ波形になっています。ここからステレオ音声での編集がStartしますので、とっかかりとしては役に立つかもしれません。
 +
 +
L(左)チャンネルのみ取り出す。
 +
<syntaxhighlight2 lang="bash">
 +
ffmpeg -i inputStereo.wav -af pan="mono|c0=c0" OutputLchOnlyMono.wav
 +
</syntaxhighlight2>
 +
R(右)チャンネルのみ取り出す。
 +
<syntaxhighlight2 lang="bash">
 +
ffmpeg -i inputStereo.wav -af pan="mono|c0=c1" OutputRchOnlyMono.wav
 +
</syntaxhighlight2>
 +
 -afはオーディオエフェクト関連のオプションが始まることを意味していて。panをmono|c0に設定でmono音声に変換することを意味していて、c0=c0で入力の左チャンネルを新たなc0に設定するという感じです。反対のチャンネルも同じことをしています。
 +
 +
 c0=FC、c1=FL、c2=FR、c3=LFE、c4=BL、c5=BRに対応していて、c0は5.1chのセンタースピーカーにも対応していて、2chスピーカーとしては「FC=mono|c0 (mono)」で「FL=steleo|c0 (stereo)」と「FR=steleo|c1 (stereo)」はステレオの左と右の音声を扱うチャンネルとして処理されます。LFE=LowFrEquencyで低音のウーファーのためのチャンネルでBL、BRは後ろの左、右という意味です。それがc0のようなc[数字]という形式でも表現できるということです。
 +
<syntaxhighlight2 lang="bash">
 +
ffmpeg -i inputStereo.wav -af pan="mono|c0=c0" OutputLchOnlyMono.wav
 +
ffmpeg -i inputStereo.wav -af pan="mono|FC=FL" OutputLchOnlyMono.wav
 +
</syntaxhighlight2>
 +
 は同じ意味になります。
 +
 +
 結合は以下のとおりです。
 +
<syntaxhighlight2 lang="bash">
 +
ffmpeg -i monoFrontLeft.wav -i monoFrontRight.wav -filter_complex "[0:a][1:a]amerge=inputs=2,pan=stereo|c0=c0|c1=c1[aout]" -map "[aout]" MonoMono2Stereo.wav
 +
ffmpeg -i monoFrontLeft.wav -i monoFrontRight.wav -filter_complex "[0:a][1:a]amerge=inputs=2,pan=stereo|c0<c0|c1<c1[aout]" -map "[aout]" MonoMono2NormalizeStereo.wav
 +
ffmpeg -i stereoFrontLeft.wav -i stereoFrontRight.wav -filter_complex "[0:a][1:a]amerge=inputs=2,pan=stereo|c0<c0+c1|c1<c2+c3[aout]" -map "[aout]" StereoStereo2NormalizeStereo.wav
 +
</syntaxhighlight2>
 +
 一番上とその下はモノラル音声ファイル2つをステレオファイルに統合する変換です。上はそのままくっつけるだけです。下はNormalizeをします。
 +
 +
 一番下はステレオ音声二つをくっつけて、一つ目のステレオの音声の右と左を足し合わせた音を左、もう一つの音声をのステレオ音声の右と左を足し合わせた音を右にしてステレオ音声を一つ作るという方法です。c0c1c2c3の組み合わせをいろいろ変えれば、いろいろな結合が出来ることを想像できると良いのですが、大丈夫かな(´・ω・`)
 +
 +
 +
 難しい変換ですが、-fileter_complexはフィルターチェーンを後ろに定義します。っていう意味です。フィルターていうのは映像音声加工のある部分を消したり重ねたり特定の見せ方にしたりという処理で、それをまとめていくつか書きますっていうことです。「"」ダブルクォーテーションで囲ったところが、そのチェーンで「,」カンマが各フィルターの区切りになっています。[0:a][1:a]amerge=inputs=2で入力記載された順番で0:a 1:aという名前で扱うとして、二つのファイルを結合するという意味になっています。このとき各チャンネル(ステレオファイルの1の左、右/2の左、右)はc0から順番にc0,c1…c3と名前をつけていくことを意味しています。モノラルならチャンネルは1コなので一つしか増えませんね。pan=の後の意味は一番上の例でいうと音声の左右の振り分けの設定は、stereoの設定として出力ファイルのc0が左、c1が右としてチャンネルは左のc0=c0で一つ目のモノラルファイルの一つしかないチャンネルc0をそのまま割り当て、右はc1=c1で2つ目のファイルの一つしかないチャンネルがc1なのでそれを割り当てます。それを[aout]という名前の出力とします。[aout]はオーディオの出力という意味です。それを-map "[aout]"として展開して、それを出力ファイルとして吐き出そうみたいな指定になっています。
 +
 +
 +
 今回は使わないですが、Sub Station Alphaで読み込めるようにするには、更にビット深度を8bitにしておく必要があるので
 +
 +
<syntaxhighlight2 lang="bash">
 +
ffmpeg -i inputMono.wav -acodec pcm_u8 output8bitMono.wav
 +
</syntaxhighlight2>
 +
 +
 というコマンドを使います。
 +
 +
 
 +
 +
===='''SoundEngine Free'''====
 +
 こちらの方法を使う場合はオーディオファイルの形式はwavである必要があります。
 +
 +
<syntaxhighlight2 lang="bash">
 +
ffmpeg -i input.mp4 -map 0:1 output..wav
 +
</syntaxhighlight2>
 +
 で変換できます。変換するコーデックが指定されていない場合でも拡張子から、変換するに使用するべきcodecをffmpegが自動で割り当てしてくれます。.wavの場合はWindows10 64bit環境ではpcm_s16leエンコーダーが使われます。他の環境ではどうなるのか知りません。どちらにしてもWindows用の説明なので、分からなくても問題ないです。
 +
 +
*SoundEngine Freeで読み込む。
 +
*メニュー[ファイル]-[その他の保存]-[LR分割保存]
 +
*まず左チャンネルのwavを名前を付けて保存。
 +
*次に右チャンネルのwavを名前を付けて保存。2回分の保存画面が続けて表示されます。
 +
 +
 +
 残念ながらモノラルとして片チャンネル抽出はできますが、2つを合わせる方法はありません。
 +
 +
後日記:
 +
 +
 無いと思っていたらありました。メニューの[編集]-[フォーマット変換]でした。選択するとダイアログが表示されるので、そこでチャンネル数を2~1に変更するだけで、ステレオからモノラルにも出来ます。ビット深度も変更できます。同時にノーマライズもしてくれるみたいです。ー後日記、ここまでー
 +
 +
 
 +
 +
===='''FL Studio20'''====
 +
 自分が持っているDAWアプリです。ffmpegのような操作ができるのか確認しました。
 +
 +
 結論、やれますが、手順が複雑かつ、長いので別記事にします。
 +
 +
 [[FL Studio ステレオ左右分割→モノラル変換/ステレオ→モノラル変換]]
 +
 +
後日記:
 +
 +
 ビット深度8bitには出来ないので、今回は使いませんが、Sub Station Alphaでは、8bitでないと読み込めないです。別の手順を使いましょう。ー後日記、ここまでー
 +
 +
==='''続きの記事はコチラ'''===
 +
[[⧅ffmpeg DivX HomeTheater形式の生成 2]]
 +
 +
 
  
 
[[⧅ffmpeg]]に戻る
 
[[⧅ffmpeg]]に戻る

2020年12月20日 (日) 00:00時点における最新版



個人用ツール
名前空間

変種
操作
案内
ツールボックス