FFmpeg - Frågor om ”De-Squeeze” av Anamorfisk Video

Permalänk
Medlem

FFmpeg - Frågor om ”De-Squeeze” av Anamorfisk Video

Hej,

Nyligen skaffade jag denna anamorfiska lins till min GoPro Hero 11:
https://uk.neewer.com/products/neewer-upgraded-version-1-33x-...

Den säger sig ha en ”klämfaktor” på 1.33x för video inspelad i 16:9 bildformat vilket ska resultera i ett slutgiltigt bildformat på 2.40:1 efter ”De-Squeeze”.

Vad jag inte förstår är hur en klämfaktor på 1.33 ger en slutgiltig bildruta som är 2.40x bredare än höjden i just detta fall?

Borde inte klämfaktorn vara 1.35x om den slutgiltiga bildformatet ska vara 2.40:1?

Jag filmar i en upplösning på 5312x2988 (16:9) samt 3840x2160 (16:9).

Om jag nu följer alla instruktioner som jag kan hitta för ”De-Squeeze” via Google så ska jag bara multiplicera min horisontella upplösning med 1.33 för att få det korrekta bildformatet.

Men (1.33 x 5312) / 2988 = 2.36444444444… ≈ 2.36 ≠ 2.40 samt (1.33 x 3840) / 2160 = 2.36444444444… ≈ 2.36 ≠ 2.40.

Hittills har jag kört dessa kommandon i FFmpeg för att korrigera för min lins:

To change the aspect ratio to which the anamorphic video is displayed run the command below: ffmpeg -i [anamorphic_source].MP4 -aspect 2.40 -c copy [anamorphic_source]_corrected_display_only.MP4 Change the resolution at which the video is stored & displayed at for true de-squeezeing: The commands below are for 10-bit video from a GoPro HERO 11 Black. See these links: https://trac.ffmpeg.org/wiki/Encode/H.264#crf https://trac.ffmpeg.org/wiki/Encode/H.265 For 5312x2988 at 16:9 ratio to 2.40:1: ffmpeg -i [anamorphic_source].MP4 -aspect 2.40 -vf scale=7172:2988 -c:v libx265 -qp 28 [anamorphic_source]_corrected.MP4 For 3840x2160 at 16:9 ratio to 2.40:1 (can also be used for downscaling footage shot at 5312x2988): ffmpeg -i [anamorphic_source].MP4 -aspect 2.40 -vf scale=5184:2160 -c:v libx265 -qp 0 [anamorphic_source]_corrected.MP4

Kommandona ovan verkar fungera bra.

Min fråga om dem är dock om ”-vf scale=5184:2160” och ”-vf scale=7172:2988” interpolerar nya pixlar?

Permalänk
Medlem

https://en.wikipedia.org/wiki/Aspect_ratio_(image)

Där står om 2.40:1 att det är en avrundad version av formatet 2.39:1 så att det passar in i upplösningen 1920x800.
Formatet 2.39:1 = 21,5:9, används för "35 mm anamorphic from 1970 onwards"
Men det stämmer ändå inte riktigt med 1,33 gånger bredare än 16:9. Det är nog lite grovt avrundat.
Det borde vara ungfär 1,34 som det ska vara. Men troligen ser du ändå inte skillnad när du tittar på det, det är bara 1% fel.
Jag tänker att det ska vara 21,5/16 som skalningsfaktor för att det ska stämma med formaten.
Kanhända att det är tekniskt sett enklare att skala 1,33 digitalt så man har nöjt sig med denna avrundning?

Edit: I vissa videoformat kan man låta skalningen ske vid uppspelning. Ett exempel på detta är DVD som skalar om 720x576 till 16:9 format, alternativt 4:3 beroende på hur man flaggat videoströmmen. Så det borde gå att komprimera strömmen i din originalupplösning och sätta en flagga som säger åt spelaren att skala om den enligt dina önskemål. Problemet är att alla spelare inte klarar av detta så ibland skalar man om innan man komprimerar videon och sätter omskalningsflaggan till 1:1. Jag har inte ffmpeg-kommandona i huvudet men det skulle kunna bli så att den skalas två gånger om man har både aspect och scale.

Permalänk
Medlem
Skrivet av ronnylov:

https://en.wikipedia.org/wiki/Aspect_ratio_(image)

Där står om 2.40:1 att det är en avrundad version av formatet 2.39:1 så att det passar in i upplösningen 1920x800.
Formatet 2.39:1 = 21,5:9, används för "35 mm anamorphic from 1970 onwards"
Men det stämmer ändå inte riktigt med 1,33 gånger bredare än 16:9. Det är nog lite grovt avrundat.
Det borde vara ungfär 1,34 som det ska vara. Men troligen ser du ändå inte skillnad när du tittar på det, det är bara 1% fel.
Jag tänker att det ska vara 21,5/16 som skalningsfaktor för att det ska stämma med formaten.
Kanhända att det är tekniskt sett enklare att skala 1,33 digitalt så man har nöjt sig med denna avrundning?

Edit: I vissa videoformat kan man låta skalningen ske vid uppspelning. Ett exempel på detta är DVD som skalar om 720x576 till 16:9 format, alternativt 4:3 beroende på hur man flaggat videoströmmen. Så det borde gå att komprimera strömmen i din originalupplösning och sätta en flagga som säger åt spelaren att skala om den enligt dina önskemål. Problemet är att alla spelare inte klarar av detta så ibland skalar man om innan man komprimerar videon och sätter omskalningsflaggan till 1:1. Jag har inte ffmpeg-kommandona i huvudet men det skulle kunna bli så att den skalas två gånger om man har både aspect och scale.

Jag kom fram dessa reviderade FFmpeg-kommandon:

To change the aspect ratio to which the anamorphic video is displayed run the command below: ffmpeg -i [anamorphic_source].MP4 -aspect 2.40 -c copy [anamorphic_source]_corrected_display_only.MP4 Change the resolution at which the video is stored & displayed at for true de-squeezeing: The commands below are for 10-bit video from a GoPro HERO 11 Black. See these links: https://trac.ffmpeg.org/wiki/Encode/H.264#crf https://trac.ffmpeg.org/wiki/Encode/H.265 For 5312x2988 at 16:9 ratio to 2.40:1: ffmpeg -i [anamorphic_source].MP4 -aspect 2.40 -vf scale=7172:2988 -c:v libx265 -qp 28 [anamorphic_source]_corrected.MP4 For 3840x2160 at 16:9 ratio to 2.40:1 (can also be used for downscaling footage shot at 5312x2988): ffmpeg -i [anamorphic_source].MP4 -aspect 2.40 -vf scale=5184:2160 -c:v libx265 -qp 0 [anamorphic_source]_corrected.MP4 For 5312x2988 at 16:9 ratio to ~2.36:1: ffmpeg -i [anamorphic_source].MP4 -aspect 7064:2988 -vf scale=7064:2988 -c:v libx265 -qp 28 [anamorphic_source]_corrected.MP4 For 3840x2160 at 16:9 ratio to ~2.36:1 (can also be used for downscaling footage shot at 5312x2988): ffmpeg -i [anamorphic_source].MP4 -aspect 5106:2160 -vf scale=5106:2160 -c:v libx265 -qp 0 [anamorphic_source]_corrected.MP4

Jag har dessutom varit i en mejlkonversation med Neewer (som säljer linsen) för att se vad deras produktutvecklingsteam säger.

Tack för ditt svar!

Permalänk
Medlem
Skrivet av Apollo11:

Jag kom fram dessa reviderade FFmpeg-kommandon:

To change the aspect ratio to which the anamorphic video is displayed run the command below: ffmpeg -i [anamorphic_source].MP4 -aspect 2.40 -c copy [anamorphic_source]_corrected_display_only.MP4 Change the resolution at which the video is stored & displayed at for true de-squeezeing: The commands below are for 10-bit video from a GoPro HERO 11 Black. See these links: https://trac.ffmpeg.org/wiki/Encode/H.264#crf https://trac.ffmpeg.org/wiki/Encode/H.265 For 5312x2988 at 16:9 ratio to 2.40:1: ffmpeg -i [anamorphic_source].MP4 -aspect 2.40 -vf scale=7172:2988 -c:v libx265 -qp 28 [anamorphic_source]_corrected.MP4 For 3840x2160 at 16:9 ratio to 2.40:1 (can also be used for downscaling footage shot at 5312x2988): ffmpeg -i [anamorphic_source].MP4 -aspect 2.40 -vf scale=5184:2160 -c:v libx265 -qp 0 [anamorphic_source]_corrected.MP4 For 5312x2988 at 16:9 ratio to ~2.36:1: ffmpeg -i [anamorphic_source].MP4 -aspect 7064:2988 -vf scale=7064:2988 -c:v libx265 -qp 28 [anamorphic_source]_corrected.MP4 For 3840x2160 at 16:9 ratio to ~2.36:1 (can also be used for downscaling footage shot at 5312x2988): ffmpeg -i [anamorphic_source].MP4 -aspect 5106:2160 -vf scale=5106:2160 -c:v libx265 -qp 0 [anamorphic_source]_corrected.MP4

Jag har dessutom varit i en mejlkonversation med Neewer (som säljer linsen) för att se vad deras produktutvecklingsteam säger.

Tack för ditt svar!

Man kanske skulle kunna filma en cirkel rakt framifrån och sedan mäta bredd och höjd på den hoptryckta ovalen som det blir i videon innan uppskalningen. Sedan räknar man ut hur mycket bredare ovalen behöver bli för att åter igen bli en cirkel. Då får du fram uppskalningsfaktorn. Jag tolkar det som att din lins trycker ihop bilden på bredden och du vill dra isär den igen för att få ett bredare bildformat. Förresten det kanske är lättare att filma en kvadrat istället för en cirkel, då ser man enklare att man håller kameran rakt. Alltså en sorts kalibrering av din lins och kamera.

Permalänk
Medlem
Skrivet av ronnylov:

Man kanske skulle kunna filma en cirkel rakt framifrån och sedan mäta bredd och höjd på den hoptryckta ovalen som det blir i videon innan uppskalningen. Sedan räknar man ut hur mycket bredare ovalen behöver bli för att åter igen bli en cirkel. Då får du fram uppskalningsfaktorn. Jag tolkar det som att din lins trycker ihop bilden på bredden och du vill dra isär den igen för att få ett bredare bildformat. Förresten det kanske är lättare att filma en kvadrat istället för en cirkel, då ser man enklare att man håller kameran rakt. Alltså en sorts kalibrering av din lins och kamera.

Ok, jag vet inte om jag fortsätter med detta. Tack ändå för tipset.