2016-12-30 17 views
0

FF4EGを使用してmp4クリップをh264バイトフォーマットに変換しようとしています。私は正常にlibx264へのアクセス権を持つソースからFFMPEGをコンパイルしました。mp4をh264に変換する方法FFMPEGを使用してAUDを追加する

libx264でFFMPEG(バージョン3.2.2)のドキュメントを見ると、boolフラグ-audがあります。 online documentationでは、このフォーマットは、次のコマンドの作品を​​使用した例

ffmpeg -i input.flac -id3v2_version 3 out.mp3 

が得られますが、出力ファイルに必要なAUDsを生成しません:私はまた別の変種を試してみた

ffmpeg -i input.mp4 -codec:v libx264 -aud 1 output.h264 

これは含めて:

ffmpeg -i input.mp4 -vcodec libx264 -aud 1 output.h264 
ffmpeg -i input.mp4 -aud 1 output.h264 

など

私はassum eこの操作を実行することについて私が誤解していることがあります。私は基本的にmp4コンテナでh264ムービーを取り出し、それにAUDを追加したh264ストリームとしてダンプします。なぜこれがうまくいかないのか?

(私はまた、-audフラグを指定してx264を試してみましたが、うまくいきましたが、望ましい出力を生成しませんでした)。

答えて

1
ffmpeg -i input.mp4 -x264opts aud=1 output.h264 
+0

リンクをありがとう、私はそれらをさらに調べる必要があります。あなたが提供したコマンドをただちに試してみても、出力にはAUDが生成されません(以前のものよりはるかに速いですが)。また、-aud 1フラグを無駄に追加しようとしました。 2番目のリンクからは、output.tsではなくoutput.h264だけを使って試してみましたが、それでも動作しませんでした。それらはすべてAnnex B形式であれば私が期待するように、最初のアクセスユニットタイプはSEI(6)であり、AUD(9)ではありません。実際には、出力ファイルの16進数ダンプに期待されるAUD単位(00 00 01 69)が見つかりません。 – SyntheticGio

+1

https://ffmpeg.org/ffmpeg-codecs.html#Options-23 – Mulvya

+1

を参照してくださいもちろん、 '-c copy'では、libx264が動作していないので効果がありません。 – Mulvya

1

MPEG-TSのミュクサーはAUDsを作成するので、この2ステップの非破壊プロセスの動作:

ffmpeg -i in.mp4 -c copy -map v -vbsf h264_mp4toannexb in.ts 

そして次に

ffmpeg -i in.ts -c copy -map v -f h264 in.h264 
+0

この方法ではエラーが発生しています(h264の最初のストリームに加えて、mjpeg形式の2番目のストリームがあるようです)、サポートされていないmjpegについて不平を言っています。私は最初のストリーム(#0:0)だけを使用するためにフラグを追加する必要があると思う。私は漠然とドキュメンテーションでこれを行う方法を辿って来ることを覚えていますが、私は手を覚えていません。 – SyntheticGio

+1

その場合、 '-map v'の代わりに' -map 0:v:0'を使います – Mulvya

関連する問題