ffmpeg HEVC mit HLS-spezifischer Fragmentdauer

2363
alexbuisson

Ich benutze einen 10-Bit-Build von ffmpeg / x265, um den folgenden Befehl auszuführen, bei dem ich ein Eingangsev2x2 / 10-Bit-Video decodiere, es in ein anderes Cmd-Zeilen-Tool pipe und die Ausgabe erneut in eine neue ffmpeg-Instanz pipe, in der ich neu codieren und fragmentieren möchte mit einer 3 Sekunden langen Fragmentdauer. Beachten Sie, dass dieselbe Zeile mit der x264 / 8-Bit-Kodierung wie erwartet funktioniert hat.

ffmpeg-hi10-heaac -y -an -i "./HEVC.mp4" -s 3840x2160 -f rawvideo - | myCLI | ffmpeg-hi10-heaac -y -f rawvideo -pix_fmt yuv420p10le -s 3840x2160 -r 23.976 -i - -c:v libx265 -b:v 5000K -g 24 -keyint_min 24 -sc_threshold 0 -map 0:v -f stream_segment -segment_time 3 -segment_list manifest.m3u8 -segment_list_type m3u8 output.%05d.ts 

Das Problem ist, dass:

  • Manifest sagt, dass die Fragmentdauer etwa 10 Sekunden beträgt
  • und es stimmt, jedes .ts am Ausgang ist ungefähr 10 Sekunden lang.

Ich würde gerne wissen, ob es sich um ein bekanntes Problem handelt, ob es eine Problemumgehung gibt oder ob es sich um die von mir verwendete Option oder eine Kombination dieser Optionen handelt.

Vielen Dank.

0

1 Antwort auf die Frage

1
szatmary

Sie müssen auch die Gop-Größe einstellen. -g [fps * Segmentzeit]

Ja, ich hatte nur 1 I-Frame, aber es sieht so aus, als würde Luke die 'g'-Option nicht verwenden. Ich muss die' x265-params 'min-keyint usw. einstellen. Als ob manche ffmpeg-Option nicht übersetzen würde in x265 Option! Und selbst bei dieser Änderung beträgt die Segmentlänge immer noch 10 Sekunden. alexbuisson vor 9 Jahren 0