-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[確認]NHK解説放送のmp4エンコード #244
Comments
ffmpegの {"dual_mono_mode", "Select the channel to decode for dual mono",
0x42, AV_OPT_TYPE_INT, {.i64=-1}, -1, 2,
AACDEC_FLAGS, "dual_mono_mode"},
{"auto", "autoselection", 0, AV_OPT_TYPE_CONST, {.i64=-1}, INT_MIN, INT_MAX, AACDEC_FLAGS, "dual_mono_mode"},
{"main", "Select Main/Left channel", 0, AV_OPT_TYPE_CONST, {.i64= 1}, INT_MIN, INT_MAX, AACDEC_FLAGS, "dual_mono_mode"},
{"sub" , "Select Sub/Right channel", 0, AV_OPT_TYPE_CONST, {.i64= 2}, INT_MIN, INT_MAX, AACDEC_FLAGS, "dual_mono_mode"},
{"both", "Select both channels", 0, AV_OPT_TYPE_CONST, {.i64= 0}, INT_MIN, INT_MAX, AACDEC_FLAGS, "dual_mono_mode"}, FFmpeg: libavcodec/aacdec_template.c File Reference 一方で、昨今の地デジ・BS放送では番組のMPEG-TS内に複数のストリームを持たせることが出来るため、主音声・副音声を共に個別のステレオ音声として放送している場合が多いです。 以下に、3種類の多重音声放送番組における ①ブラタモリ「127 パリの美」[解][字] [NHK総合1・名古屋] 2019年02月23日(土曜日)
②ゲゲゲの鬼太郎 45[字][多][デ]【真相は万年竹の藪の中】 [東海テレビ011] 2019年02月24日(日曜日)
③【緊急地震速報】2016年11月22日(火) 06時00分15秒.ts
上記の場合、①と②では 連続テレビ小説「まんぷく」や土曜ドラマ「みかづき」のストリームがどのようになっているのか、私は録画していないため把握できませんが、ドラマがモノステレオ放送ということはないでしょうから、十中八九ステレオ音声の多重ストリーム放送でしょう。 この場合、正しく音声を分離したい場合は |
オーディオの簡易判定方法ですが https://github.com/l3tnun/EPGStation/blob/master/doc/conf-manual.md#encode にあるように. 環境変数
|
|
advancedbearさん、詳しい解説ありがとうございます。 まんぷくをffprobeしたところ、新たな発見がありました。 Input #0, mpegts, from 'まんぷく128-2019-03-04.ts': Input #0, mpegts, from 'まんぷく127-2019-03-02.ts': NHKBSプレミアムでは、音声が2チャンネル、NHK総合では1チャンネルです。 |
ちょっと不思議なのは、NHK総合の朝と昼の「まんぷく」は、音声チャネル1でモノとffprobeではなっているのに、番組表では、音声2チャンネル、ステレオになっています。番組表が間違っているのでしょうか。 NHKBSプレミアムの朝の「まんぷく」は、音声チャネル2、ステレオとffprobeではなっており、番組表でも、音声2チャンネル、ステレオと合っています。 実際にffprobeで確認した内容が正しいとすれば、NHK総合の番組表の情報が、間違っていることになります。 そして、もう一つ気がついたのは、NHK総合の「まんぷく」というか、音声チャンネル1のモノの解説放送は、dual_mono_modeを設定してもしなくても、解説がとれないようです。 明日朝、もう一度確認してみます。 |
再度、NHK総合の「まんぷく」とNHKBSプレミアムの「まんぷく」を見たところ、違いがありました。 前者は、3秒ほど「まんぷく」の前のニュースが入っており、後者は、「まんぷく」だけで始まっていました。 そもそも同じmirakurunを使っているのに、NHK総合とNHKBSプレミアムで録画開始時間が変わるのも不思議ですし、ニュースのプロパティがそのまま「まんぷく」に流れ込むのも不思議です。 解説放送の問題ではなく、NHK総合の録画開始時間のズレが問題のようです。 ということで、解説放送の問題ではないので、クローズで良いと思います。 |
Mirakurunの問題ではなく、MPEG2-TSの仕様(+ffmpeg/ffprobeの仕様)です。
BSプレミアムのStreamにおいて、Stream0:11の音声がPID[0x111]となっていることにお気づきでしょうか。
ストリームの流れで見ると上記のような形になるため、ファイル先頭から読み出すffmpeg/ffprobeはPID[0x110]を第1音声ESと認識してトランスコードを行います。 TSSplitterなどで前番組との境目で分割したファイルをffprobeで読み直せば実態がよく分かるかと。 ※これ以上はEPGStationやMirakurunの問題ではなく、ffmpeg/ffprobeの仕様とMPEG2-TSの仕様の話になるのでこの場で続けるのは不適切とも思いますが。 |
こちらがNHK総合です。実は気がつかなかったのですが、Stream #0:11[0x111]: があったんですね。 さらに、NHKBSプレミアムでは、
TSSplitterを必ず通してから行うのが確実なんでしょうが、前番組との境目より少し遅らせて録画する方が簡単なような気がします。 |
失礼しました、自分で前番組が「おはよう日本」だと書いておきながらBSプレミアムと誤記してしまいました。 録画開始・終了のバッファについてはMirakurun側で設定可能です。 開始マージンを0にしたら音声ストリームの重複問題は改善はするかもしれませんが、プロセス立ち上がり+チューナーオープン等のラグを考えると、どう考えても頭切れするのではないかなと。 大本の話に戻りますが、Mirakurunの録画マージンを弄らずとも
を徹底していただければ
というようにほぼすべての問題が解決するはずです。 |
adbancedbearさん、いろいろありがとうございます。 再度、「まんぷく」の前番組がモノの場合で、-dual_mono_modeを付けずにffmpegを使用してみましたが、解説付きになってしまいました。 epgstationのデフォールトの設定の場合、 これは、NHK総合で、「ニュース・気象情報」「みかづき」や「おはようニッポン」「まんぷく」で確認されています。
ができれば、最適解なんですが、なぜか私のところでは再現できていません。 もう少し調査して、だめな場合はmirakurunの開始マージン0を選ぶことも考えます。 |
ご自分で一番最初に答えを出してるのにどういう意味なんでしょう。
EPGStationのenc.sh(またはenc.js)に記載のデフォルトエンコード設定はあくまでデフォルトであって基本的には
ということです。 デフォルトのenc.shでは Line 14 in bf03027
のように、H264を選ぼうがH264-subを選ぼうが -dual_mono_mode が付加されますから、
はそもそも前提条件からして間違っています。 |
もしかして、 考えてみれば、enc.shの中身を書き換えるような解説はdocにはないかもしれないですね。 |
advancedbearさん、 ちょっと違うかもしれないので、私の設定をお話します。 config.jsonを書き換え、3つのエンコードを入れています。 別に、自分で書き換えればなんでもできますは、それでいいのですが、単にデフォールトの設定で、NHKのいくつかの番組が、予期せぬ解説付きになってしまいますよ、と言ってるだけなんです。 |
すみません、もっと簡単に言うと、これdual_mono_modeには関係ない問題でした。 単に、「シングルモノ」「解説」の順に番組が続いた場合、ffmpegでエンコードすると「解説付き」のmp4ができるという話です。だから、これを回避するには、「シングルモノ」を入れないようにするか、ffmpegのオプションで回避するか、しか解決しないと思います。 それから、qsvが悪さしている可能性もあります。 |
といった条件が揃った結果ということですね。 EPGStationとしてのIssueはデフォルトの
|
advancedbearさん、 その通りです。 私は、NHKBSプレミアムで「まんぷく」を録画し、NHKの土曜ドラマはストリームを指定して再エンコードすれば、問題解決です。 |
汎用性の高いffmpegエンコードオプションを探ろうと、数日前から私も朝のNHKドラマを録画してみたのですが、
という条件に合致していてもEPGStationデフォルトのエンコードオプションでは 1つ質問なのですが、qsvエンコードをする際に何か特別なオプションを入れていませんか? とはいえ、sub指定でも第二音声が出力されないデフォルトの デフォルトオプションの変更課題については別Issueを後ほど建て直そうかと思っています。 |
advancedbearさん、 いろいろ調べていただきありがとうございます。 現在qsv-mainの設定は、以下の通り。 $FFMPEG -dual_mono_mode main -y -i "$INPUT" -init_hw_device qsv=hw -filter_hw_device hw -c:v h264_qsv -vf hwupload=extra_hw_frames=64,format=qsv -b:v 4M -maxrate 8M -acodec aac -loglevel error "$OUTPUT" 上記設定で、ほとんど問題なくmp4が作成できます。二ヶ国語も主音声になります。 まず、これはepgstationの問題ではないので、ここでクローズにしたいと思います。 advancedbearさんのところで再現しない、さらに解説放送も抽出できないとのことですが、 (1)地デジとBSデジの違い (2)「自分に負けないラボラトリ」さんの情報 ここで言う多重音声放送とは、ステレオ音声による複数音声が選択可能な放送のことです。日本語と他国語の切り替えに使われることが多いですが、スポーツ中継などで実況と副音声の形で使われることもあります。 注意事項があります。PCでTVを録画する場合、番組開始前に5秒程度のマージンを取っている方が多いのではないでしょうか。その場合、多重音声放送であっても、FFmpegの制限により”-multi”オプションは使えません。ファイルの先頭から多重音声でないとFFmpegが多重音声と認識できないためです。 この問題は、Windows用の”Murdoc Cutter”と言うアプリを使って多重音声放送の頭出しをすることで解決します。FFmpegによる頭出しは出来ません。私が調べた限り、それ以外の方法は見つかっていません。 以上、epgstationの問題ではなく、mirakurunの開始マージン、私のアンテナ環境、-multiオプションなどの問題と考えられます。 |
「H264」の設定で、tsからmp4へエンコードする際の現象です。
NHKの[解]がつく放送、例えば連続テレビ小説「まんぷく」や土曜ドラマ「みかづき」で、
解説付きでmp4ができてしまいます。
dual_mono_modeのオプションをなくせば、通常の音声になります。
「H264-sub」でも解説付きになります。
解決策としては、通常はdual_mono_modeオプションなしでエンコード。[二]の時だけ「H264」を使うという方法ですが、みなさんはどう解決していますか?
The text was updated successfully, but these errors were encountered: