問題タブ [mpeg2-ts]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ffmpeg - H264 ビデオ ストリームを正しく再エンコードせずに、ffmpeg で .MTS ファイル (AVCHD) を .mp4 に変換するにはどうすればよいですか?
後で見つけた別のコミュニティVideo Productionに同じ質問を投稿しましたが、この質問にはこちらの方が適しているようです。
1. 試したこと
AVCHD カメラで記録した .MTS (AVCHD 形式) ファイルがいくつかあります。その仕様は次のとおりです。
フレームレート/タイムベースの部分に注意してください: 29.97 fps、29.97 tbr、90k tbn、59.94 tbc
ここで、このファイルを .mp4 ファイルに変換したいと思いますが、 H264 ビデオ ストリーム を再エンコードせずに、オーディオ ストリームを AAC にトランスコードします。そこで、次のコマンドを試しました。
ffmpeg -i 140612_Canon-00000.MTS -t 60 -y -vcodec copy -acodec libfaac -ab 128k 140612_Canon-00001.MTS.mp4
2. 結果
出力ファイルの仕様は次のとおりです。
フレームレート/タイムベースの部分を見てください: 59.94 fps, 59.94 tbr, 90k tbn, 59.94 tbc . ffmpeg はビデオ ストリームをコピーしただけですが、フレームレートとタイムベースは値の 2 倍に変更されています。
そのため、QuickTime Player または VLC Player で出力ファイルを開いて再生すると、オーディオは問題ありませんが、ビデオ ストリームは正しく再生されません。フレームを前後に揺らしながら再生を繰り返します。
3. 質問
- H264 ビデオ ストリームを正しく再エンコードせずに、ffmpeg で .MTS ファイル (AVCHD) を .mp4に変換するにはどうすればよいですか?
- とそのスイッチを使用してコンテナーを変換するときに、元のフレームレート/タイムベース値 (fps/tbr/tbn/tbc)を保持するにはどうすればよいですか?
ffmpeg
-vcodec copy
- ビデオ ストリームを再エンコードせずに、ffmpeg のコマンド ライン オプションでフレームレート/タイムベース値 (fps/tbr/tbn/tbc)を設定するにはどうすればよいですか。
何か案は?
resolution - H.264 MPEG-2 TS で解像度とフレームレートの値を見つける方法は?
H.264 ストリームを含む MPEG-2 TS ビデオに取り組んでおり、PAT、PMT、PES などをスキャンして、ストリームに保存されているビデオ プロパティを探しています。
PAT、PMT、およびエレメンタリ ストリーム タイプと PID を読み取ることができます。ここで、解像度とフレームレート (fps) を見つけたいと思います。それらは PES ヘッダーにありますか、それとも他の場所にありますか? それらは PAT または PMT にはありません。
以下では、トランスポート ストリーム パケット エディターは 2 つの異なる情報を見つけることができます。1 つはそれ自体、もう 1 つは Haali Media Decoder ヘルパー コーデックからです。最初のものを取得する方法:
擬似コードは歓迎されます。
android - Android PCM -> AAC = M4A 対 MPEG2-TS
生の AAC データを MPEG2-TS ストリームにパッケージ化するにはどうすればよいですか?
私は継続的に録音(マイク)し、Android内のPCMオーディオをAACに圧縮しています:
これにより生のヘッドレス AAC が生成されるため、各フレームに必要な MPEG ヘッダーも追加します。
これは正常に機能しており、作成された AAC ファイルを再生できます。VLC または Google Music Player で。
今私の質問:
WAV および MP3 ストリームで既に行っているように、エンコードされたデータを HTTP LIVE STREAM (HLS) として一部のレンダラーに送信したいと考えています。
しかし、Androidアプリに送信している場合、記録を中断してストリームをフラッシュ/終了するまで、ストリームの再生は開始されません。MP3 では問題ありません。数秒後に再生が開始されます。
Androidの「サポートされているメディア タイプ」ページに関して、HLS は、
HTTP/HTTPS ライブ ストリーミング ドラフト プロトコル: MPEG-2 TS メディア ファイルのみ
現在のように MPEG4 ストリームではなく、生の AAC ストリームを MPEG-2 TS ストリームにパッケージ化する方法を誰が教えてくれますか?
私はこの分野で初めてです。間違いを許してください。
ffmpeg - h.264 でアクセス ユニットを解析する方法
私は、4 つのアクセス ユニットを削除して残りのビデオを再生するなど、生のエレメンタリ ストリームのAccess units
一部をカットする必要があるプロジェクトで作業しています。H.264
このため、Access unit Delimiter
(NAL Unit Type:9
)を境界としてAccess Unit
ビデオをカットしましたが、ビデオはパケットロスで終了しました。しかし、境界としてSequence parameter set
( NAL Unit type :7
) を使用すると、結果のビデオはパケット損失なしで再生されます。
この問題を解決する方法を教えてください: ビデオをどこでカットしますか?
h.264 - Apple の HLS では、アクセス ユニットは PES パケット内でどのように調整されますか?
Apple はこれを指定していますか? PES パケットのペイロードにはいくつのアクセス ユニットを配置する必要がありますか?
また、PES パケットに存在するプレフィックス開始コード (存在する場合) を知りたいです。アクセス ユニット内の最初の NAL ユニットの前にあるものは役に立たないので、入れてはいけないと思います。右?
特にHLSでどのように行われるかを知りたいです-必ずしも他のMPEG-2 TSアプリケーションではありません。
mpeg2-ts - 複数の TS ファイルを正しいタイムスタンプで 1 つにマージする方法は?
複数の TS ファイルを正しいタイムスタンプを持つ 1 つの TS ファイルにマージする方法は? データに触れることなく、ファイルを 1 つにマージできます。これにより、再生可能なファイルが生成されますが、タイムスタンプが正しくないため、タイムラインが表示されません (たとえば、VLC で)。そのため、何らかの方法で gstreamer/ffmpeg またはそのためのコマンドライン ツールを使用してタイムスタンプを再計算し、不要な再エンコードを防ぐ必要があります。ありがとう!