Koduje h264 za pomocą FFMPEG, który działa we wszystkich przeglądarkach i urządzeniach (Windows / Mac / iOS / Android)


2

Chcę zakodować obrazy za pomocą FFMPEG do pliku wideo h264, który będzie działał w przeglądarkach Windows i Mac oraz urządzeniach z systemem iOS / Android w celu wyświetlania w HTML5. Czy można to zrobić za pomocą jednego zakodowanego pliku? Obecnie mój ciąg ffmpeg koduje teraz tylko dla systemu Windows / Android

Oto mój obecny kod ffmpeg:

a oto mój kod wyświetlania HTML5:

ffmpeg -y -r 25 -i ./images/video%04d.png -i  music.wav -shortest -vcodec libx264 -s  720x480 -strict experimental -acodec aac video_file.mp4

<video width="640" height="480"  controls="" preload="" poster="../poster.jpg">
    <source src="video.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>

Jeśli zmienię -vcodec na mpeg4 zamiast libx264, działa to na iOS / MAC, ale nie na Windowsie! Co jest naprawdę mylące!

przy użyciu ffmpeg w wersji 3.0.1-static http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2016 deweloperzy FFmpeg

Odpowiedzi:


1

Ponieważ używasz najnowszej wersji ffmpeg, użyj poniższej komendy

ffmpeg -y -i ./images/video%04d.png -i music.wav -profile:v baseline -shortest -vcodec libx264 -s  720x480 -acodec aac -movflags +faststart video_file.mp4

profilejest ustawiony na najniższy wspólny mianownik baselinedla szerokiej kompatybilności. Pole MOOV jest przesunięte na początek pliku, więc nie trzeba pobierać całego MP4 przed rozpoczęciem odtwarzania.

Domyślnie ffmpeg przypisuje liczbę klatek na sekundę 25 do sekwencji obrazów, chyba że określono inaczej. Od grudnia 2015 r. Natywny koder AAC nie jest już oznaczany jako eksperymentalny.

Zarówno rozmiar 720x480, jak i HTML5 wideo - 640x480 - sprawiają, że myślę, że masz do czynienia z materiałem źródłowym NTSC. Jeśli tak, użyj

ffmpeg -y -framerate 30000/1001 -i ./images/video%04d.png -i music.wav -vf "scale=640x480,setsar=1' -profile:v baseline -shortest -vcodec libx264 -acodec aac -movflags +faststart video_file.mp4
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.