G
enby!

🎬 STM32 Π²ΠΈΠ΄Π΅ΠΎΠΏΠ»Π΅Π΅Ρ€ AVI с OSD мСню. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ jpeg Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Π° Π½Π° ассСмблСрС

🎬 STM32 Π²ΠΈΠ΄Π΅ΠΎΠΏΠ»Π΅Π΅Ρ€ AVI с OSD мСню. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ jpeg Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Π° Π½Π° ассСмблСрС. πŸ‘‰ Π’ Π²ΠΈΠ΄Π΅ΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„ΠΈΠ»ΡŒΠΌΡ‹ (Π½Π° ΠΏΡ€Π°Π²Π°Ρ… Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Creative Commons): "Elephants Dream": Β© Π‘opyright 2006, Blender Foundation / www.orange.blender.org "Big Buck Bunny": Β© Π‘opyright 2008, Blender Foundation / www.bigbuckbunny.org "Sintel": Β© Copyright 2010, Blender Foundation / www.sintel.org Blender Foundation β€” нСкоммСрчСская организация, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰Π°ΡΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ модСлирования с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Blender (https://www.blender.org).
πŸ‘‰ ВрСбования ΠΊ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ AVI: ΠΏΠΎΡ‚ΠΎΠΊ Π²ΠΈΠ΄Π΅ΠΎ mjpeg (motion jpeg), Ρ‚.Π΅. Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Π΄Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ jpeg ΠΊΠΎΠ΄Π΅ΠΊΠΎΠΌ; ΠΏΠΎΡ‚ΠΎΠΊ Π°ΡƒΠ΄ΠΈΠΎ mp3, Ρ‚.Π΅. Π·Π²ΡƒΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ mp3 ΠΊΠΎΠ΄Π΅ΠΊΠΎΠΌ. Для прСобразования Π²ΠΈΠ΄Π΅ΠΎΡ„Π°ΠΉΠ»Π° ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΌΡƒ ΠΏΠ»Π΅Π΅Ρ€ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ffmpeg. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ командная строка ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ mp4-Π²ΠΈΠ΄Π΅ΠΎ Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠ»Π΅Π΅Ρ€ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ avi с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π° 320Ρ…240, частотой 25 ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² сСкунду, с качСством кодирования 15: ffmpeg -i video.mp4 -c:a mp3 -c:v mjpeg -s 320x240 -r 25 -q 15 video.avi Π³Π΄Π΅: -i video.mp4 - ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° Ρ„Π°ΠΉΠ»-источник, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠ»Π΅Π΅Ρ€ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ avi; video.avi - Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ avi, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ сохранСн Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ прСобразования; -c:a mp3 - ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ "звуковая Π΄ΠΎΡ€ΠΎΠΆΠΊΠ°" (Π°ΡƒΠ΄ΠΈΠΎΠΏΠΎΡ‚ΠΎΠΊ) Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΊΠΎΠ΄Π΅ΠΊΠ° mp3; -c:v mjpeg - ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ "Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΡ€ΠΎΠΆΠΊΠ°" (Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΡ‚ΠΎΠΊ) Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΊΠΎΠ΄Π΅ΠΊΠ° mjpeg (Π½Π°Π±ΠΎΡ€ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ΄Π΅ΠΊΠΎΠΌ jpeg, Ρ‚.Π½., motion jpeg); -s 320x240 - ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Π΄Ρ€Π° Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ avi (ΡˆΠΈΡ€ΠΈΠ½Π°, высота); -r 25 - ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° частоту Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Π΄Ρ€ΠΎΠ² Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ avi (ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² сСкунду); -q 15 - ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° качСство кодирования Ρ„Π°ΠΉΠ»Π° avi (ΠΎΡ‚ 1 (Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅Π΅) Π΄ΠΎ 31 (Π½Π°ΠΈΡ…ΡƒΠ΄ΡˆΠ΅Π΅)). ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ Π·Π²ΡƒΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ -b, ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΌ bitrate (ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π² Π±ΠΈΡ‚/с). НапримСр, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ»ΡŽΡ‡, ΠΊΠ°ΠΊ, -b:a 128k, задаст для Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π² 128 ΠΊΠ±ΠΈΡ‚/с, Ρ‡Ρ‚ΠΎ считаСтся для ΠΊΠΎΠ΄Π΅ΠΊΠ° mp3 Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΏΡ€ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (32-96 ΠΊΠ±ΠΈΡ‚/с достаточно для кодирования Ρ€Π΅Ρ‡ΠΈ, Π° ΠΎΡ‚ 96 ΠΊΠ±ΠΈΡ‚/с ΠΈ Π±ΠΎΠ»Π΅Π΅ - ΠΌΡƒΠ·Ρ‹ΠΊΠΈ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ качСства). ΠŸΠΎΡ‚ΠΎΠΊΠ° Π² 256 ΠΊΠ±ΠΈΡ‚/с достаточно для высокого качСства ΠΌΡƒΠ·Ρ‹ΠΊΠΈ ΠΏΡ€ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ mp3. 320 ΠΊΠ±ΠΈΡ‚/с - ΠΏΡ€Π΅Π΄Π΅Π» для ΠΊΠΎΠ΄Π΅ΠΊΠ° mp3. ΠŸΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ сторон ΠΊΠ°Π΄Ρ€Π° исходного Π²ΠΈΠ΄Π΅ΠΎ. НапримСр, Ссли исходноС Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠΌΠ΅Π»ΠΎ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ сторон ΠΊΠ°Π΄Ρ€Π° 16:9, Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании дисплСя с ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ 320 пиксСлСй, высота Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ 180 пиксСлСй. Π’.Π΅. ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ s для ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ Π² Π²ΠΈΠ΄Π΅ 320Ρ…180. Если ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ сторон исходного ΠΊΠ°Π΄Ρ€Π° 4:3, Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании дисплСя с ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ 320 пиксСлСй высота Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ 240 пиксСлСй. Π’.Π΅. ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ s для этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ Π² Π²ΠΈΠ΄Π΅ 320Ρ…240. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ q опрСдСляСт качСство кодирования ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния ΠΎΡ‚ 1 Π΄ΠΎ 31. Π‘ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ q качСство сниТаСтся, Π° с ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ΠΌ - увСличиваСтся. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, СстСствСнно, влияСт Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Π° jpeg. πŸ‘‰ ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: ΠΏΠ»Π°Ρ‚Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ stm32f401ccu6 дисплСй Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… ILI9341 ΠΈΠ»ΠΈ ST7789 с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ 320x240 ΠΈΠ»ΠΈ 240x240 с SPI интСрфСйсом (конфигурация дисплСйного модуля опрСдСляСтся Π² Ρ„Π°ΠΉΠ»Π΅ display_config.h Π² ΠΏΠ°ΠΏΠΊΠ΅ Display) Π°ΡƒΠ΄ΠΈΠΎ-ЦАП pcm5102a ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΈΠΊΡ€ΠΎ SD-ΠΊΠ°Ρ€Ρ‚Ρ‹ макСтная ΠΏΠ»Π°Ρ‚Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° для ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ энкодСр с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ кондСнсаторы кСрамичСскиС 0.01-0.1 ΠΌΠΊΠ€ - 2 ΡˆΡ‚. πŸ‘‰ Бсылка Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (Π³ΠΈΡ‚Ρ…Π°Π±): https://github.com/vadrov/stm32f4_fas...
πŸ‘‰ ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹: Β Β Β /Β @vadrovΒ Β  https://t.me/vadrov_channel
stm32, jpeg stm32, avi stm32, mp3 stm32, video stm32, audio stm32, Π²ΠΈΠ΄Π΅ΠΎ stm32, Π°ΡƒΠ΄ΠΈΠΎ stm32 #stm32 #jpeg #video

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅