Her türlü görüntüyü (format, boyut ...) çekmesi gereken bir komut dosyası yazmaya ve avconv ile bir video oluşturmaya çalışıyorum. Bir dizi jpg ile çalışmasını sağladım (aynı boyutta olsa da) ve şimdi tüm görüntüleri boyut ve formatta benzer yaparak videoyu oluşturacağından emin olmak için convert kullanmaya çalışıyorum. İşte nasıl yaparım:
(for J in $(ls "$1/"* 2> /dev/null); do
convert "$J" -resize 640x480 -gravity center \
-size "$FORMAT" -fill black -extent 640x480 jpg jpeg:-
done) | avconv -f image2pipe -r 1/5 -c:v mjpeg -i - \
-vcodec libx264 -r 20 -f mpegts video.mpeg
Avconv'un döndürdüğü bir dizi resim buldum:
Input stream #0:0 frame changed from size:640x480 fmt:yuvj420p to size:160x120 fmt:yuvj422p
Input stream #0:0 frame changed from size:160x120 fmt:yuvj422p to size:320x240 fmt:yuvj422p
Input stream #0:0 frame changed from size:320x240 fmt:yuvj422p to size:88x128 fmt:yuvj420p
[mjpeg @ 0x101838800] only 8 bits/component accepted
Error while decoding stream #0:0
Input stream #0:0 frame changed from size:88x128 fmt:yuvj420p to size:120x160 fmt:yuvj420p
Kontrol ettim ve sadece convert kullandığımda görüntü iyi görünüyor. Görüntüyü avconv'un çalışması için mükemmel bir şekilde aynı yapmak için dönüştürecek bir şeyim yok sanırım. Ama gerçekten bulamıyorum
Yardımınız için teşekkürler!
DÜZENLE
Bu yüzden araştırmadan sonra, bunun aynı çözünürlük ve / veya örnekleme oranına sahip olmayan çıktı görüntülerinden kaynaklandığı görülmektedir. Bu yüzden bunu denedim:
(for J in $(ls "$1/"* 2> /dev/null); do
convert "$J" -background '#000000' -resize "640x480"
-gravity center -extent "640x480" -sampling-factor '4:2:2'
-resample '72x72' jpeg:-
done) |
avconv -f image2pipe -r 1/5 -c:v mjpeg -i -
-vcodec libx264 -r 30 "foo.mpeg"
Yine de başarılı olamadım ...
Input stream #0:0 frame changed from size:640x480 fmt:yuvj422p to size:160x120 fmt:yuvj422p
Input stream #0:0 frame changed from size:160x120 fmt:yuvj422p to size:320x240 fmt:yuvj422p
Input stream #0:0 frame changed from size:320x240 fmt:yuvj422p to size:88x128 fmt:yuvj420p
[mjpeg @ 0x101838800] only 8 bits/component accepted
Error while decoding stream #0:0
Input stream #0:0 frame changed from size:88x128 fmt:yuvj420p to size:120x160 fmt:yuvj420p
boru :: Giriş /
İşte kullandığım resim:
- http://test_avconv.s3.amazonaws.com/1.png
- http://test_avconv.s3.amazonaws.com/2.jpg
- http://test_avconv.s3.amazonaws.com/3.jpg
- http://test_avconv.s3.amazonaws.com/4.jpg
Bu yardımcı olur umarım...