13

ffmpegが同じ入力をいくつかの異なる「出力」ファイルに出力するために必要なフォーマット/構文は何ですか?たとえば、異なるフォーマット/異なるビットレート?出力の並列処理をサポートしていますか?

4

6 に答える 6

10

ffmpegのドキュメントが更新され、これに関する多くの情報が追加されました。オプションは、使用するffmpegのバージョンによって異なります。http://ffmpeg.org/trac/ffmpeg/wiki/Creating%20multiple%20outputs

于 2013-07-18T14:23:13.373 に答える
5

FFMpegのドキュメントから、FFmpegは任意の数の出力「ファイル」に書き込みます

各出力ファイル(またはストリーム)の前に適切な出力オプションがあることを確認してください。

于 2012-08-21T16:41:54.153 に答える
3

私が使う

ffmpeg -f lavfi -re -i 'life=s=300x200:mold=10:r=25:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16' \
-f lavfi -re -i sine=frequency=1000:sample_rate=44100 -pix_fmt yuv420p \
-c:v libx264 -b:v 1000k -g 30 -keyint_min 60 -profile:v baseline -preset veryfast -c:a aac -b:a 96k  \
-f flv "rtmp://yourname.com:1935/live/stream1" \
-f flv "rtmp://yourname.com:1935/live/stream2" \
-f flv "rtmp://yourname.com:1935/live/stream3" \
于 2019-06-08T14:08:05.323 に答える
2

複数のインスタンスを実行できない理由はありますffmpegか?私はそれで素晴らしい結果を出しました...

一般的に、私が行ったことは、ソースffmpegファイルに対して1回実行して、基本標準(たとえば、より高品質のh.264 mp4ファイル)に分類することです。これにより、ソースファイルにこの最初のパスでクリーンアップされるため、問題が発生します

次に、その新しいソース/入力ffmpegファイルを使用して、たとえばbashでx個のジョブを実行します...

「...」が表示される場所は、すべてのエンコードオプションを配置する場所です。

# create 'base' file

ffmpeg -loglevel error -er 4 -i $INPUT_FILE ... INPUT.mp4 >> $LOG_FILE 2>&1

# the command above will run and then move to start 3 background jobs
# text output will be sent to a log file

echo "base file done!"

# note & at the end to send job to the background

ffmpeg ... -i INPUT.mp4 ... FILENAME1.mp4 ... >/dev/null 2>&1 &
ffmpeg ... -i INPUT.mp4 ... FILENAME2.mp4 ... >/dev/null 2>&1 &
ffmpeg ... -i INPUT.mp4 ... FILENAME3.mp4 ... >/dev/null 2>&1 &

# wait until you have no more background jobs running

wait > 0
echo "done!"

各バックグラウンドジョブは並行して実行され、CPU全体で(基本的に)バランスが取れているため、各コアを最大化できます。

于 2012-08-20T19:36:32.757 に答える
2

http://sonnati.wordpress.com/2011/08/30/ffmpeg- –-the-swiss-army-knife-of-internet-streaming -–- part-iv /およびhttp://ffmpeg-usersに基づく.933282.n4.nabble.com / Multiple-output-files-td2076623.html

ffmpeg -re -i rtmp://server/live/high_FMLE_stream -acodec copy -vcodec x264lib -s 640×360 -b 500k -vpre medium -vpre baseline rtmp://server/live/baseline_500k -acodec copy -vcodec x264lib -s 480×272 -b 300k -vpre medium -vpre baseline rtmp://server/live/baseline_300k -acodec copy -vcodec x264lib -s 320×200 -b 150k -vpre medium -vpre baseline rtmp://server/live/baseline_150k -acodec libfaac -vn -ab 48k rtmp://server/live/audio_only_AAC_48k

または、出力を「ティー」にパイプして「X」の他のプロセスに送信し、実際にエンコードを実行することもできます。

ffmpeg-i入力-| ティー..。

これにより、CPUを節約できる可能性があります。これは、他の方法では明らかに利用できない、より多くの出力並列処理を可能にする可能性があるためです。

http://ffmpeg.org/trac/ffmpeg/wiki/Creating%20multiple%20outputsおよびここを参照してください

于 2012-08-20T15:59:08.307 に答える
1

私はそのようにしました

ffmpeg -re -i nameoffile.mp4 -vcodec libx264 -c:a aac -b:a 160k -ar 44100 -strict -2 -f flv  \
-f flv rtmp://rtmp.1.com/code \
-f flv rtmp://rtmp.2.com/code \
-f flv rtmp://rtmp.3.com/code \
-f flv rtmp://rtmp.4.com/code \
-f flv rtmp://rtmp.5.com/code \

しかし、私が期待していたように完全にうまく機能しておらず、nginxでリストリームしています

于 2021-01-09T02:30:30.303 に答える