Jawaban:
Saya tidak tahu apakah itu ffmpegyang tidak dapat menampilkan datanya ke stdout, atau ffplayyang tidak dapat mengambil input dari stdin.
Jika itu ffmpegyang tidak bisa menampilkan data ke stdout:
capture /dev/stdout | ffmpeg -i - >(ffplay 2> /dev/null)
(Anda perlu menambahkan -argumen ffplaysehingga dibutuhkan input dari stdin.)
Jika itu ffplaytidak dapat mengambil input dari stdin:
ffplay <(capture /dev/stdout | ffmpeg -i -) 2> /dev/null
Untuk informasi lebih lanjut tentang <(command)dan >(command)konstruksi, lihat bagian Pergantian Proses dari manual bash.
ffmpeg -i input.avi <options> -f matroska - | ffplay -
akan bekerja; Anda perlu mengatur format wadah untuk output. Ini biasanya diatur dengan ffmpeg melihat ekstensi yang Anda berikan output, tetapi di sini Anda harus mengaturnya secara manual -f. Saya merekomendasikan matroska (MKV) karena dapat berisi hampir semua video, jadi apa pun yang Anda transcoding harus bekerja dengan baik.
Perhatikan bahwa jika Anda menggunakan Ubuntu 12.04, ffmpeg telah digantikan oleh garpu libav, dan Anda harus menggunakan avconvdan avplaysebagai gantinya; sintaksnya identik. Ada semacam ffmpeg di sana, tapi itu lumpuh karena desain.
pipe:: Invalid data found when processing inputKpada Power Shell, tetapi bekerja dengan baik di command prompt
ffmpeg mendukung operasi perpipaan. Lihat bagian dokumentasi itu di sini .
Saya tidak tahu bagaimana ffplay bekerja, tetapi untuk mem-pipe output dari ffmpeg ke output standar, Anda dapat menambahkan perintah pipe ke akhir perintah ffmpeg. Contoh:
ffmpeg -i input.flv pipe:1 | ffplay -i -
man ffplay, saya tidak bisa melihat ffplaymendukung -isaklar - apakah itu mungkin ffmpegsaja?
pipe:1vs -? -bekerja pada ffmpeg 2.8.6.
sepertinya pipa normal berfungsi (setidaknya di windows):
ffmpeg -i sintel.mpg -pix_fmt yuv420p -f rawvideo - | ffplay -f rawvideo -pix_fmt yuv420p -s 720x480 -
belum mencobanya dengan input / output yang lebih rumit ...
ffmpeg -f dshow -i video=screen-capture-recorder -pix_fmt yuv420p -f mpegts - | ffplay -analyzeduration 10 -f mpegts -
adalah startup yang sedikit lebih cepat
Unable to find a suitable output format for 'pipe:'- saya perlu menentukan codec dengan -f.