Я попробовал различные варианты для копирования фильма на 12 ГБ с Ubuntu на Android (соединенный как Камера для надежного соединения с mtp еще хуже ситуацией), но удивительно для меня существует проблема дефицита RAM+SWAP (полностью 16 ГБ минус используемая часть), проблема отображена на изображении: RAM+SWAP заполнил 99,9%. Копирование процесса продолжается, Ubuntu зависает в течение минуты и после того, как та ошибка появляется (или не).
Попробованный для копирования с:
Все не работает на меня, тот же результат - память заполненные, копирующие остановки.
Какие-либо идеи, как просто скопировать большой файл с Ubuntu?
1/просто необходимо разделить файл со следующей командой:
zip --split-size 1g zipfilename name_of_your_movie
Это разделит Ваш файл к нескольким заархивированным частям 1 ГБ каждый, которого можно переместить один за другим.
2/Затем повторно собирают части со следующей командой:
zip --split-size 0 zipfilename.zip --out unsplitted
Это создаст объединенный zip-файл, названный unsplitted (это было бы нелепо, если фильм Ваше перемещение "Разделяется" :P)
3/Разархивировали файл unsplitted.zip: unzip unsplitted.zip
, и вуаля!
1) Разделите файл на две части с помощью 7Zip (страница справочника) - разделяет файл без сжатия для лучшей скорости. Скопируйте по каждой части в Android, затем с zArchiver или 7zipper установленный на Android, присоединитесь к файлам назад вместе в Ваш огромно размерный фильм.
ИЛИ
2) Уменьшите файл ролика с приложением С открытым исходным кодом Ручной тормоз или эквивалентный к размеру, который не перестал работать. Скопируйте меньший файл.
ИЛИ
3) Повторно закодируйте фильм с помощью HEVC (иначе H.265) с Ручным тормозом или эквивалентный для уменьшения файла, если устройство на базе Android играет HEVC хорошо. Я использую VLC на своем OnePlus 7Pro и работах HEVC как чемпион. Ваш пробег может варьироваться.
ИЛИ
4) Обойдите прямое подключение между ПК и устройством на базе Android и передайте его через WiFi.
Вы можете просто split
и cat
:
split --size=1G movie.mp4 movie.mp4.split
скопируйте файлы, и в эмуляторе терминала на Android:
cat movie.mp4.split* >> movie.mp4
Как метод zip, это требует дважды суммы пространства. Если Ваш файл является очень большим и существует недостаточно пространства на цели, можно инкрементно связать каждую часть и удалить ее впоследствии:
for part in movie.mp4.split*; do
cat "$part" >> movie.mp4
rm "$part"
done
Теперь мы можем автоматизировать этот процесс. Следующее sh
сценарий делает
sh
сценарий для повторной сборки частейНапример, вызов
sh split.sh movie.mp4 100M
создает папку movie.mp4.split
с частями размера 100 МБ и сценария unsplit.sh
. Тот сценарий повторно собирается movie.mp4
в том же каталоге как movie.mp4.split
и удаляет себя и папку впоследствии.
split.sh:
#!/bin/sh
if [ -z "$1" ] ; then
echo "Please specify the file to split"
exit 1
fi
if [ ! -f "$1" ] ; then
echo "File not found: " $1
exit 2
fi
size=1M
if [ ! -z "$2" ] ; then
size=$2
fi
filename=$(basename "$1")
dirname="$1".split
mkdir "$dirname"
split --bytes="$size" "$1" "$dirname/part"
unsplit_script="$dirname/unsplit.sh"
cat > "$unsplit_script" <<EOF
#!/bin/sh
working_dir=\$(dirname "\$0")
if [ -f "\$working_dir/../$filename" ] ; then
echo "File already exists: $filename"
exit 1
fi
for part in "\$working_dir"/part*; do
cat "\$part" >> "\$working_dir/../$filename"
rm "\$part"
done
rm "\$0"
rmdir "\$working_dir/../$dirname"
EOF
chmod +x "$unsplit_script"
exit 0