2017-06-06 28 views
0

ソースVBR SPTS MPEG-2 TSファイルをffmpegを使用してCBRに変換しようとしています。ffmpeg VBR→MPEG-2 TSビデオファイルのCBR変換とストリーミング

#!/bin/bash 

pkill ffmpeg 

ffmpeg \ 
     -re -i source.ts -c copy \ 
     -muxrate 18000K \ 
     -f mpegts \ 
     udp://destination_ip:1234?pkt_size=1316 

ソースVPIDビットレートが10Mbpsの〜で、APIDが296Kbpsである:私は使用していたコードは次のようです。だから私の理解によると、このコードは、マルチプレックスとすべてのPIDのビットレートの差がヌルパケットで満たされた18Mbp​​sのCBRを提供するはずです。

出力が完全ではないという問題があります。全体的なビットレートはせいぜい半CBRです。 12Mbpsから15Mbpsの範囲であり、VPIDとAPIDの両方でCCエラーとともにPCR精度とPCR繰り返しエラーが多く発生します。

答えて

1

いくつかのアイデア:

  • は、ストリームのコピー
  • はあなたがしなければならない一定のUDP出力したい場合はPCRの挿入を台無しにバグがありましたので、いくつかの点であなたがffmpegの最新バージョンを持っていることを確認してください

    -flush_packets 0 -f mpegts "udp://destination_ip:1234?pkt_size=1316&bitrate=18000000" 
    
  • UDPが信頼できないプロトコルであり、あなたは、残念ながら(をパケット損失が発生する可能性がありますようbitrateオプションを使用しますあなたは、専用の接続を持っているが、まだCCエラーが先OSの最大UDPバッファサイズをチェックし経験し、それが18 Mbpsの
+0

うーん、私のffmpegのバージョンが2.8.11-0ubuntu0.16.04.1です。明日、私はソースから最新のバージョンをインストールしようとすることができます。しかし、私の現在のバージョンでは、私はどんな詰め物も全く持っておらず、ビットレートは大きく変動しています。私はtsplayを使ってはるかに良い結果を達成することができました。同じTSファイルをストリーミングすると実際にはより少ないPCRエラーが発生します。 –

+0

@ GeorgeStoyanov最近の[静的ビルド](https://johnvansickle.com/ffmpeg/)をコンパイルせずに最新のものを素早くチェックしたい場合は、 – LordNeckbeard

+0

@ GeorgesStoyanovもしあなたがNULLパケットを挿入するのではなく真のH.264 CBRをしたいのなら別の方法があります。 – aergistal

0
  1. -minrateを指定扱うことができることを確認した場合オプションは
  2. )私の知る限り、今のUDPの作品-maxrateもあります。
  3. -bufsizeを使用すると、bitrateより大きくなります。
  4. -muxrateの値がbufsizeのように設定します。

最後のコマンド:

ffmpeg \ 
    -re -i source.ts \ 
    -b:v 10500k \ 
    -minrate 10500k \ 
    -maxrate 10500k \ 
    -bufsize 18000k \ 
    -muxrate 18000k \ 
    -f mpegts \ 
    udp://destination_ip:1234?pkt_size=1316 
+0

@entrophy、あなたのコメントのおかげで、私はそれをテストし、私の発見を共有します。 –

関連する問題