انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => انجمن عمومی => نویسنده: Nelliel در 29 آبان 1394، 10:58 ق‌ظ

عنوان: درست کردن اسکریپت برای ناتیلوس
ارسال شده توسط: Nelliel در 29 آبان 1394، 10:58 ق‌ظ
سلام

من از گنوم 3.18 استفاده می‌کنم که از ناتیلوس به عنوان فایل منیجر استفاده میکنه, همون طور که میدونید هر اسکریپتی که در مسیر :

~/.local/share/nautilus/scripts
قرار بگیره از طریق منوی کلیک راست قابل اجرا شدن هست من میخوام مثل علیرضا امیرصمیمی با زنیتی یه اسکریپت بنویسم که هر وقت روی یه فایل ویدیوی کلیک کردم و بازش کردم اونو با زنیتی برام توی یه محیط گرافیکی ساده کانورت کنه.

حالا مشکل اینه که وقتی من از توی منوی کلیک راست اسکریپت را اجرا میکنم تغییرات روی فایل ویدیوی اعمال نمیشه یعنی اصلا ffmpeg کار نمیکنه و در دستور :

pstree | grep ffmpeg
نیست. یعنی میخوام طوری بنویسم که وقتی روی هر فایلی ویدیوی کلیک کردی اون فایل را ورودی ffmpeg بشناسه. من فعلا توی اسکریپتم اصلا از محیط گرافیکی که زنیتی میسازه استفاده نکردم تا اول مشکل اصلیم را حل کنم اما در حالت عادی باید کانورت شروع شه و برای کنسل کردنش ffmpeg را بکشم.

اسکریپت من تا الان اینه :

#!/bin/bash
for file in *
do
    ffmpeg -i "$file" -c:v libx264 -c:a copy out.mp4
done

*ویرایش شد*

آیا اصلا درست رفتم ؟؟

چجوری بنویسم که روی فایلی که کلیک میکنم ورودی بشناسه ؟؟
عنوان: پاسخ : درست کردن اسکریپت برای ناتیلوس
ارسال شده توسط: احسان فعالپور در 29 آبان 1394، 11:49 ق‌ظ
فارغ از اینکه راهت درسته یا نه من یه سوتیه بزرگ توی اسکریپتت میبینم.
متغیر حلقه اسمش file ه نه i.
عنوان: پاسخ : درست کردن اسکریپت برای ناتیلوس
ارسال شده توسط: Nelliel در 29 آبان 1394، 11:59 ق‌ظ
فارغ از اینکه راهت درسته یا نه من یه سوتیه بزرگ توی اسکریپتت میبینم.
متغیر حلقه اسمش file ه نه i.

بله حق با شماست  :oops: :oops: :oops: :oops:

سوتیه خیلی بزرگی بود اما بازم مشکل هست
عنوان: پاسخ : درست کردن اسکریپت برای ناتیلوس
ارسال شده توسط: Nelliel در 29 آبان 1394، 04:23 ب‌ظ
حل شد همون اسکریپت الان داره کار میکنه.

مشکل از سیستم من بود.
عنوان: پاسخ : درست کردن اسکریپت برای ناتیلوس
ارسال شده توسط: Nelliel در 29 آبان 1394، 07:07 ب‌ظ
سلام
دوباره حل شد تاپیک را برداشتم چون دوباره تقریبا به مشکل قبلی بر خوردم, اسکریپت من رسیده به این :
#!/bin/bash
mpeg2video="MPEG2"
libx265="X265"
libx264="X264"
codec=$(zenity --title "Aricon" --width 500 --height 200 --list --text "Choose your codec" --radiolist --column "Select" --column "Codecs" TRUE "$libx265" FALSE "$libx264" FALSE "$mpeg2video");
if [ $? = 1 ];
then exit;
fi
outname=$(zenity --entry --title="Aricon" --text="Please choose your output name" )
if [$? = 1];
then exit;
fi
format=$(zenity --title "Aricon" --width 500 --height 250 --list --text "Choose your output format" --radiolist --column "Select" --column "Codecs" TRUE "mp4" FALSE "mkv" FALSE "flv" FALSE "mov");
if [ $? = 1 ];
then exit;
fi
for i in *
do
  ffmpeg -i "$i" -c:v "$codec" -c:a copy "$outname"."$format"
done

و الان وقتی رانش میکنم مشکل قبلی را داره که هیچ اتفاقی نمیفته. لطفا راهنماییام کنید اینم خروجیش توی ترمینال :

Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
./Aricon: line 10: [0: command not found
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
ffmpeg version 2.8.1 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 5.2.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-shared --enable-version3 --enable-x11grab
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Aricon: Invalid data found when processing input
ffmpeg version 2.8.1 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 5.2.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-shared --enable-version3 --enable-x11grab
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Remuxer: Is a directory

یه نکته را بگم اون اخر نوشته Remuxer دایرکتوی هست باید بگم وقتی من اسکریپت را توی کلیک راست اجرا میکنم فرق داره با وقتی خودش را با ترمینال ران میکنم پس اون آخر که یه همچین چیزی را نوشته و گفته دایرکتوی هست همیشگی نیست.

فقط یه نکته قبلا توی htop کلمه‌ی ffmpeg را نشون نمیداد و کانورت هم نمیکرد الان نشون نمیده اما نصفه نیمه کانورت میکنه یعنی طوری که تصویر نیست صدا هست یا ...