なまけもの

備忘録

TSファイルからワンセグ画質のストリーミングを削除する

概要

GoogleドライブにTSファイルをアップロードした場合に、ワンセグのストリーミングが含まれているとワンセグ画質のみがGoogleドライブに保存されてしまう場合がある。
これを避けるために、TSファイルからワンセグ画質のストリーミングを削除する。

目次

環境

準備

とくになし

手順

"TSSniper" を使用する

TSSniperをダウンロードする

  1. TSSniper 0.80.0.600 test - VideoHelpにアクセスする。
  2. "Download TSSniper 0.80.0.600 test"をクリックし、"TSSniper_0_80_0_600_Freeware.zip"をダウンロードする。
  3. "TSSniper_0_80_0_600_Freeware.zip"を任意の場所に解凍する。

ストリームを削除する

  1. "TSSniper.exe"を起動する。
  2. "File"⇒"New Project"をクリックする。
  3. TSファイルをD&Dする。
    • 解析が行われ、"SpritON Sniper - Program selection"ダイアログが表示される。
  4. "SpritON Sniper - Program selection"ダイアログから、残したいストリームを選択し、"OK"ボタンをクリックする。
  5. "Export"⇒"Export trasport stream"をクリックする。
  6. 保存先を選択し、"保存"ボタンをクリックする。
    • ストリームが削除されるので、ファイルサイズも小さくなる。

注意

  • TSファイルの"ネットワーク名"の情報は削除される。
  • テキストストリームも削除される。
  • 音声ビットレートが若干下がる?
    • 元ファイル : 192kbps/2ch/48kHz ⇒ 変換 : 187kbps/2ch/48kHz

"ffmpeg" を使用する

勉強中。

入力ファイルのストリームを確認する

コマンド

ffmpeg -i <入力ファイル>
オプション

出力例

ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7.3.0 (GCC)
  configuration: --enable-gpl (略)
  libavutil      55. 78.100 / 55. 78.100
  (略)
  libpostproc    54.  7.100 / 54.  7.100
[mpeg2video @ 00000000003cc400] Invalid frame dimensions 0x0.
    Last message repeated 10 times
[mpegts @ 00000000003ca400] start time for stream 2 is not set in estimate_timin
gs_from_pts
[mpegts @ 00000000003ca400] start time for stream 3 is not set in estimate_timin
gs_from_pts
[mpegts @ 00000000003ca400] nothing to probe for stream 2
[mpegts @ 00000000003ca400] nothing to probe for stream 3
[mpegts @ 00000000003ca400] Could not find codec parameters for stream 4 (Audio:
 aac ([15][0][0][0] / 0x000F), 0 channels): unspecified sample format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpegts, from '<入力ファイル>':
  Duration: 00:15:10.83, start: 68581.575111, bitrate: 16223 kb/s
  Program 103
    Metadata:
      service_name    : ?~ホネヒツモ?|ラ・「
      service_provider: ?~ホネヒ
    Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420
p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k
 tbn, 59.94 tbc
    Stream #0:1[0x110]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, ster
eo, fltp, 276 kb/s
    Stream #0:2[0x130]: Data: bin_data ([6][0][0][0] / 0x0006)
    Stream #0:3[0x138]: Data: bin_data ([6][0][0][0] / 0x0006)
    Stream #0:4[0x111]: Audio: aac ([15][0][0][0] / 0x000F), 0 channels
  Program 104
    Metadata:
      service_name    : ?~ホネヒツモ?|ラ・「
      service_provider: ?~ホネヒ
At least one output file must be specified

例では、"0:0" が映像、"0:1" が音声であることがわかる。

ストリームを抽出する

コマンド

ffmpeg -i <入力ファイル> -map 0:0 -map 0:1 -async 1 -codec copy <出力ファイル>
オプション
  • -map <file:stream>
    • <file:stream>で指定したストリームを対象とする。
    • 併記可。
    • 上記の例より、-map 0:0 -map 0:1で映像と音声が対象となる。
  • -async <1-1000>
    • 音声を映像に同期させる。
    • -async 1 は、音声の最初のみ同期をさせ、それ以降はサンプルをそのまま使用する。
    • 大きな音ズレの修正を行いと音声がゆがむ。

注意

  • 指定の映像・音声を出力ファイルへコピーするため、それ以外の情報は削除される。
    • ネットワーク名
    • テキストストリーム

以上。