1

Temat: formatowanie dysku usb do exfat

Witam, czy istnieje możliwość formatu dysku /pendrive na usb który w tej chwili jest w formacie FAT32 do exfat ?  Druugie pytanie, to dlaczego po formatowaniue pendrive pod windows do exfat, po włożeniu do urządzenia z openwrt oraz zapisnie danych nie da sie utworzyć nowych danych pod windows(read only) ?  Dopiero po skanowanie w windows wszystko wraca do normy)

2

Odp: formatowanie dysku usb do exfat

1. Pod linuksem mkfs.exfat. W openwrt nie ma spaczkowanego tego programu.
2. Nie odmontowałeś dysku przed wyjęciem?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: formatowanie dysku usb do exfat

Ne odmontowałem, faktycznie. To nie jest dużym problemem. Większym problemem jest to, że podczas zapisywania strumienia za pomocą ffmpeg po 4 godzinach VSZ było na 100% i dostałem komunikat :

"av_interleaved_write_frame(): Out of memory"

Nie wiem jaka była przyczyna, czy mogę temu jakoś zapobiec ?  Zwiększyć w jakiś sposób limit pamięci wirtualnej dla tego procesu ? Ustawienie fifo_size może pomóc ? Czy to może wina exfat ? Czytałem kiedyś że znacznie obciąża openwrt, nie wiem tylko czy cpu czy pamięć ?

4

Odp: formatowanie dysku usb do exfat

No właśnie, do tego zacznij. Czemu do diaska wybrałeś w ogóle exfat?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: formatowanie dysku usb do exfat

Strumienie TS z ffmpeg zapisują mi się na pendrive. Po wyęciu musze mieć do nich dostęp na windows. FAT32 działa ok ale ma limit 4GB per plik więc odpada. NTFS montuje się jak read only, dlatego eksperymntuję z exfat. Masz inny pomysł ?

6

Odp: formatowanie dysku usb do exfat

ntfs montuj przez program  ntfs-3g, nie kmod-fs-ntfs

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: formatowanie dysku usb do exfat

root@OpenWrt:/mnt/sda1# opkg install ntfs-3g

Installing ntfs-3g (2017.3.23-1-fuseint) to root...
Downloading http://downloads.openwrt.org/snapshots/ … l_24kc.ipk
Multiple packages (libpthread and libpthread) providing same name marked HOLD or PREFER. Using latest.
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for ntfs-3g:
*      kernel (= 4.14.82-1-5e51f7ee57977f9693dfb361a5d892e6) *
* opkg_install_cmd: Cannot install package ntfs-3g.

8

Odp: formatowanie dysku usb do exfat

To co zawsze - używasz snapshota więc cokolwiek chcesz instalować to masz instalować od razu po instalacji. Bo za parę godzin zmienia się build i nie ma już modułów.

Czyli po prostu zrób upgrade systemy i natychmiast zainstaluj wszystko to co potrzebujesz.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: formatowanie dysku usb do exfat

Niestety, na ext4 to samo podczas dłuższej pracy ffmpeg:

"av_interleaved_write_frame(): out of memory" , pozostaje mi dwie opcje. Zwiększenie limitu dla pamięci wirtualnej tego procesu (tylko jak to zrobić)

Drugie rozwiązanie to ustawienie parametru fs= dla ffmpeg dzięki czemu po przekroczeniu limitu wielkości pliku proces się zakończy, nie wiem tylko jak rozwiązać automatyczne uruchomienie polecenia ponownie, chciałem to załatwić poprzez wstawienie do skryptu kilku poleceń jedno po drugim, ale przez to że uruchamiam je w tle (&) to uruchamiają się natychmiast zamiast jedno po drugim.

10

Odp: formatowanie dysku usb do exfat

#!/bin/sh
while true; do
  ffmpeg....
done

Będzie uruchamiał w kółko ponownie jak się proces skończy.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: formatowanie dysku usb do exfat

Coś nie tak:

root@OpenWrt:/etc# vi /etInput #0, mpegts, from 'http://192.168.11.227:86/main':
  Duration: N/A, start: 77529.940311, bitrate: N/A
  Program 1
    Metadata:
      service_name    : Live
      service_provider: Encoder
    Stream #0:0[0x1e1]: Video: h264 ([27][0][0][0] / 0x001B), yuv420p(progressive), 1920x1080, 30 fps, 29.97 tbr, 90k tbn, 60 tbc
    Stream #0:1[0x1e2]: Audio: aac ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 132 kb/s
Output #0, mp4, to '/mnt/sda1/26_11_2018_08_23_04.mp4':
  Metadata:
    encoder         : Lavf57.56.101
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p(progressive), 1920x1080, q=2-31, 30 fps, 29.97 tbr, 90k tbn, 90k tbc
    Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, stereo, 132 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
^Came=   70 fps= 28 q=-1.0 size=     553kB time=00:00:02.54 bitrate=1776.7kbits/s speed=1.01x
egpframe=  145 fps= 29 q=-1.0 size=    1158kB time=00:00:05.05 bitrate=1878.0kbits/s speed=   1x    s speed=1.01x
root@OpenWrt:/etc# frame=  153 fps= 29 q=-1.0 Lsize=    1250kB time=00:00:05.31 bitrate=1926.0kbits/s speed=   1x
video:1163kB audio:85kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.249288%
Exiting normally, received signal 15.
root@OpenWrt:/etc# vi /etc/ffmpeg2
pkillError loading shared library libswscale.so.4: Out of memory (needed by /usr/bin/ffmpeg)
Error loading shared library libavutil.so.55: Out of memory (needed by /usr/bin/ffmpeg)
Error loading shared library libavcodec.so.57: Out of memory (needed by /usr/bin/ffmpeg)
-Error loading shared library libswresample.so.2: Out of memory (needed by /usr/bin/ffmpeg)
f Error loading shared library libavresample.so.3: Out of memory (needed by /usr/bin/ffmpeg)
Error loading shared library libswresample.so.2: Out of memory (needed by /usr/bin/ffmpeg)
ffError loading shared library libgcc_s.so.1: Out of memory (needed by /usr/bin/ffmpeg)
Error loading shared library libavcodec.so.57: Out of memory (needed by /usr/lib/libavdevice.so.57)
Error loading shared library libavutil.so.55: Out of memory (needed by /usr/lib/libavdevice.so.57)
mpeg
Error loading shared library libasound.so.2: Out of memory (needed by /usr/lib/libavdevice.so.57)
Error loading shared library libgcc_s.so.1: Out of memory (needed by /usr/lib/libavdevice.so.57)
Error loading shared library libswscale.so.4: Out of memory (needed by /usr/bin/ffmpeg)
Error loading shared library libavutil.so.55: Out of memory (needed by /usr/bin/ffmpeg)
Error loading shared library libgcc_s.so.1: Out of memory (needed by /usr/bin/ffmpeg)
Error loading shared library libavcodec.so.57: Out of memory (needed by /usr/lib/libavdevice.so.57)
Error loading shared library libavutil.so.55: Out of memory (needed by /usr/lib/libavdevice.so.57)
Error loading shared library libswscale.so.4: Out of memory (needed by /usr/lib/libavfilter.so.6)
Error loading shared library libavcodec.so.57: Out of memory (needed by /usr/lib/libavfilter.so.6)
Error loading shared library libavutil.so.55: Out of memory (needed by /usr/lib/libavfilter.so.6)
Error loading shared library libgcc_s.so.1: Out of memory (needed by /usr/lib/libavfilter.so.6)
Error loading shared library libasound.so.2: Out of memory (needed by /usr/lib/libavdevice.so.57)
Error loading shared library libgcc_s.so.1: Out of memory (needed by /usr/lib/libavdevice.so.57)
Error loading shared library libswscale.so.4: Out of memory (needed by /usr/lib/libavfilter.so.6)
Error loading shared library libavresample.so.3: Out of memory (needed by /usr/lib/libavfilter.so.6)
Error loading shared library libavcodec.so.57: Out of memory (needed by /usr/lib/libavfilter.so.6)
Error loading shared library libswresample.so.2: Out of memory (needed by /usr/lib/libavfilter.so.6)
Error loading shared library libavutil.so.55: Out of memory (needed by /usr/lib/libavfilter.so.6)
Error loading shared library libgcc_s.so.1: Out of memory (needed by /usr/lib/libavfilter.so.6)
Error loading shared library libswscale.so.4: Out of memory (needed by /usr/bin/ffmpeg)
Error loading shared library libavutil.so.55: Out of memory (needed by /usr/bin/ffmpeg)
Error loading shared library libgcc_s.so.1: Out of memory (needed by /usr/bin/ffmpeg)
Error loading shared library libavutil.so.55: Out of memory (needed by /usr/lib/libavdevice.so.57)
Error loading shared library libasound.so.2: Out of memory (needed by /usr/lib/libavdevice.so.57)
Error loading shared library libgcc_s.so.1: Out of memory (needed by /usr/lib/libavdevice.so.57)
Error loading shared library libswscale.so.4: Out of memory (needed by /usr/lib/libavfilter.so.6)
^CError loading shared library libswresample.so.2: Out of memory (needed by /usr/lib/libavfilter.so.6)
Error loading shared library libavutil.so.55: Out of memory (needed by /usr/lib/libavfilter.so.6)
^CError loading shared library libgcc_s.so.1: Out of memory (needed by /usr/lib/libavfilter.so.6)
^Zpkil[7]+  Stopped                    sh /etc/ffmpeg2
root@OpenWrt:/etc# pkill -f ffmpeg
-ash: can't fork: Out of memory

12

Odp: formatowanie dysku usb do exfat

Po prostu brakuje mu pamięci nawet na załadowanie bibliotek.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13

Odp: formatowanie dysku usb do exfat

Nie zgodzę się, wykonanie polecenia bez tego skryptu działa prawidłowo, to wygląda tak jakby uruchamiał w kółko to polecenie zanim ono zakończy działanie

14

Odp: formatowanie dysku usb do exfat

Uruchamiaj tak ffmpeg żeby nie leciał w tło. Jak proces się skończy/wykrzaczy to w pętli się ponownie uruchomi. Jak uruchamiasz ffmpeg w tle to normalnie jest to że uruchomi sie ile się da i skończy się pamięć.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: formatowanie dysku usb do exfat

Uruchamiam go w tle ponieważ w inaczej nie mogę go ubić poleceniem pkill -f "ffmpeg" .  Uruchamiam i zatrzymuję ffmpeg przyciskiem wps.

16

Odp: formatowanie dysku usb do exfat

Więc nie stosuj pętli.

Zrób sobie w cronie sprawdzenie czy działa czy nie i jak nie to go uruchamiaj. O ile taka minutowa rozdzielczość wystarczy.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

17

Odp: formatowanie dysku usb do exfat

Zasada musi być taka że właczam za pomocą wps i wyłączam za pomocą wps, nie może działać na okrągło. Nie byłoby problemu gdyby nie to że trzeba po przekroczeniu np 3GB tworzyć kolejne nagranie a w razie potrzeby zatrzymać. Z samym ffmpeg nie ma problemu bo ma parametr fs, który określa przy jakiej wielkości pliku ma się zatrzymać, problem pojawia się z ponownym uruchomieniem polecenia po zakończeniu. Jeśli nie wcisnąłem ponownie WPS w celu zatrzymania ffmpeg musi się uruchomić ponownie (pętla musi się zatrzymać).

18

Odp: formatowanie dysku usb do exfat

Ale to wszystko przecież jest do oprogramowania. Skoro uruchamiasz przez wps to zrób sobie jakiś plik który informuje że ffmpeg powienien być uruchomiony i pilnuj w jakimś procesie żeby było. Jak nie ma pliku/flagi to nic z automatu nie uruchamiaj.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

19

Odp: formatowanie dysku usb do exfat

Rozwiązałem to w ten sposób:

do /etc/hotplug.d/button/wps dodałem to:

#/bin/sh
if [ "$BUTTON" = "wps" ]; then
  if [ "$ACTION" = "pressed" ]; then
    logger "Recording button released"
  . /etc/ffmpeg3


  fi

fi





w /etc/ffmpeg3 mam to:


#!/bin/sh
if pgrep -x "ffmpeg" > /dev/null 2>&1
then
rm /etc/kontrolka
pkill -f ffmpeg
echo "0" > /sys/class/leds/dwr-118-a2\:green\:usb/brightness
else
echo "255" > /sys/class/leds/dwr-118-a2\:green\:usb/brightness
wait 5

touch /mnt/sda/kontrolka
sh /etc/ffmpeg2

await 5
break
fi



plik /etc/ffmpeg2 zawiera:

#!/bin/sh
while  [ -f /mnt/sda/kontrolka ];
do
ffmpeg -fflags discardcorrupt -re -i http://192.168.11.227:86/main -fs 3M -acodec copy -vcodec copy -f mp4 /mnt/sda/$(date +%d_%m_%Y"_"%H_%M_%S).mp4
sleep 2;
done &

Do crona dodałem:
*/1 * * * * if pgrep "ffmpeg|rsync"  > /dev/null 2>&1; then wait 1; else echo "0" > /sys/class/leds/dwr-118-a2\:green\:usb/brightness; fi >> /dev/null

po to by wyłączać diodę gdy skrypt (rsync ponieważ mam też drugi skrypt który używa rsync) zakończy działanie.

Plik "kontorlka" zapisywany jest na pendrive dzięki czemu nie da się uruchomić skryptu bez zamontowanego pendrive.

Wszystko działa, proszę o sprawdzenie, szczególnie czy w dobrym miejscu użyłem &  ?