FORUMS
Remove All Ads from XDA

Batch Video Converter

229 posts
Thanks Meter: 60
 
By Budius, Senior Member on 30th March 2014, 01:26 PM
Post Reply Email Thread
Copy/Move feature V2.1.0
move/copy file to output folder if the file doesn't need conversion

Minor Bug Fix V2.0.1
All the command line executions were being reported as seconds, but it was dividing milisecond by 100 instead of 1000

Major Release V2.0

Higher quality, faster conversions, more efficient checking, and super important: works with normal FFMPEG, no need to compile it yourself.

Changes:
- dropped GUI because aint nobody got time for that
- major re-write, better structured code all together
- properly checks available audio codecs and applies accordingly
- due to the above audio changes, it works fine with FFMPEG static builds
- yeah, normal builds you can simply download from ffmpeg.org
- drop 2-pass video because aint nobody got time for that
- moved code to gradle, all dependencies now come from mavenCentral(), no more downloaded **** on or folder
- independently handle audio or video conversion or copy (greater efficiency)
- separate warning and error log files

Update V1.1.1 (minor crash fix)

it's with great pleasure that I share with you guys my batch video converter for Chromecast.

it's made to be a simple as possible, select a file or a whole folder, and Go.

I did that to convert my terabyte of movies on my DLNA-NAS to be able to cast all of it without problems.
Because of this main reason the application it DELETES THE ORIGINAL VIDEO FILE AFTER CONVERSION COMPLETION.
So then the option `-d` can be used to delete the original after successful conversion.

The app analyses the video stream of your files, compare with what Chromecast accepts and only converts what's necessary, keeping great quality, and avoiding unnecessary encoding.

I also noticed that A LOT of apps does not play embedded subtitles, so in the process it extracts subtitle files so you can separately inject it into Chromecast.

changelog:
- v1.0.0 - initial release
- v1.1.0 - re-worked FFMPEG script for better quality, new layout with settings for speed, quality, delete file, output folder.
- v1.1.1 - Fix app not properly closing. Fix crash on subtitle stream without language tag.
- V2.0 - check above
- V2.1 - move/copy file to output folder if the file doesn't need conversion


Downloads:
- zip installation: Simply unzip the file on the location. Execute with ./cc_converter (linux/mac) or cc_converter (windows) from the command line
- open source project: GitHub link (contribute!)

Before starting:
This tool is just a thin wrapper on FFMPEG, so if your PC doesn't have a working version of FFMPEG, the tool won't work.
So make sure to download a build (recommended V3.0 or later) and have it available on your PATH
On the official website you can find all the detailed instructions on how to compile FFMPEG on your PC https://trac.ffmpeg.org/wiki/CompilationGuide

Yes, unfortunately you have to compile it yourself because, to keep great quality, the tool uses the non-free parts of FFMPEG.
That means, when compiling, make sure to include libx264 and libfdk-aac and keep the enable-nonfree flag.


Settings explanations:

as per request a few explanations on options:

the speed and quality options are directly related to x264 encoding options found here: https://trac.ffmpeg.org/wiki/x264EncodingGuide

- the speed is exactly what they explain there. The faster the conversion the crappier the job.
- the quality uses CRF (constant rate factor) and defaults to good quality for both audio and video.

high quality = video CRF 18, audio 80kb/s per channel
normal quality = video CRF 23, audio 64kb/s per channel
low quality = video CRF 26, audio 48kb/s per channel

On all my tests I ended up settling with Speed SLOW and quality HIGH as the Default because those will rarely increase the file size much and it will keep same quality.
Those test were based on both converting 1994 Friends episode (pretty crappy quality) all the way to Full-HD 5.1 movies.

So unless, you have a really good reason for it, I wouldn't change any of the defaults.
The Following 8 Users Say Thank You to Budius For This Useful Post: [ View ] Gift Budius Ad-Free
 
 
31st March 2014, 04:47 PM |#2  
nigelhealy's Avatar
Senior Member
Flag San Francisco
Thanks Meter: 398
 
More
Quote:
Originally Posted by Budius

it's with great pleasure that I share with you guys my batch video converter for Chromecast.

it's made to be a simple as possible, select a file or a whole folder, and click Go.

I did that to convert my terabyte of movies on my DLNA-NAS to be able to cast all of it without problems.
Because of this main reason the application it DELETES THE ORIGINAL VIDEO FILE AFTER CONVERSION COMPLETION.

The app analyses the video stream of your files, compare with what Chromecast accepts and only converts what's necessary, keeping great quality.

I also noticed that A LOT of apps does not play embedded subtitles, so in the process it extracts subtitle files so you can separately inject it into Chromecast.

Downloads:
- executable jar: Jar file download (execute it with java -jar chromecastconverter.jar)
- open source project: GitHub link (for whoever feels like contributing)

Can I run this on a headless Linux server like a Raspberry Pi running Rasbian?
The Following User Says Thank You to nigelhealy For This Useful Post: [ View ] Gift nigelhealy Ad-Free
31st March 2014, 04:59 PM |#3  
OP Senior Member
Thanks Meter: 60
 
More
Quote:
Originally Posted by nigelhealy

Can I run this on a headless Linux server like a Raspberry Pi running Rasbian?


It was build as a Java UI (using JavaFX), so I reckon the code it's not good for a headless server (although the objects in the code are quite modular and should be totally possible with minimum modification to do it)

BUT,
I urge anyone to not use it with a RaspberryPi, I have one myself and tried some FFMPEG on it and it's just so painfully slow!!! So so slow!
Like a 20 seconds video would take 5 min to process.

ps.: If anyone find a way to build FFMPEG on a raspPi that properly uses the GPU and makes stuff runs at proper speed, please let us know.
The Following User Says Thank You to Budius For This Useful Post: [ View ] Gift Budius Ad-Free
31st March 2014, 05:02 PM |#4  
nigelhealy's Avatar
Senior Member
Flag San Francisco
Thanks Meter: 398
 
More
Quote:
Originally Posted by Budius

It was build as a Java UI (using JavaFX), so I reckon the code it's not good for a headless server (although the objects in the code are quite modular and should be totally possible with minimum modification to do it)

BUT,
I urge anyone to not use it with a RaspberryPi, I have one myself and tried some FFMPEG on it and it's just so painfully slow!!! So so slow!
Like a 20 seconds video would take 5 min to process.

ps.: If anyone find a way to build FFMPEG on a raspPi that properly uses the GPU and makes stuff runs at proper speed, please let us know.

Hmm ok. I been using a quad-core desktop and it just about does real-time. I been using get-iplayer it does something with ffmpeg to make an mp4 (which casts fine).

So your script it.... must have read-write access to the path presumably, so I'd have to have a CIFs mount? I'm Windows-less here on Ubuntu desktop so I can give it a SSFS folder, will that work? It is its delete function which scares me from simply trying it...

(edited) I'm running on my desktop it is only seeing local files folders, no CIFs mounts no SSH mounts. Means I'd have to copy all my videos to local first.

(double edit) on 2nd thoughts, I'm being dumb, I just move the external USB drive from my NAS (Raspberry) to my desktop, let it convert all needs it and then move it back.
31st March 2014, 06:17 PM |#5  
OP Senior Member
Thanks Meter: 60
 
More
Thumbs up
yeah, as you can see it's a very basic software. Specially the GUI.
I focused more on the conversion bits and hopeful that ppl from the OpenSource community can help a bit on the GUI.

Quote:
Originally Posted by nigelhealy

(double edit) on 2nd thoughts, I'm being dumb, I just move the external USB drive from my NAS (Raspberry) to my desktop, let it convert all needs it and then move it back.

Yeah, that's exactly what I've done here. My main PC is on the table there for the past 10 hours processing 1127 files of series I have. Next it will be the Movies folder.

I'm running on Linux too, and Linux is beautiful and there's all different ways you can mount a NAS folder locally but that means that all those tera-bytes of data will have to flow through the network, and that will certainly slow down the process even more.

ps.: any file that it doesn't manage to convert for whatever reason will be listed on a ChromecastConverterError.log on the folder location.


Quote:
Originally Posted by nigelhealy

It is its delete function which scares me from simply trying it...

I know the feeling. I promise you that I tried on every way I could think of to only delete if it's sure it was a successful conversion (checks for success flag, then checks if the generated file exist and its size is greater than zero)
At the moment my stuff I'm running on local copy on my machine, but I'm really confident.

ps.: that's another thing I wanted someone from the OpenSource community to help out, to have options to save to different folder and not delete the original.
31st March 2014, 07:25 PM |#6  
nigelhealy's Avatar
Senior Member
Flag San Francisco
Thanks Meter: 398
 
More
(moving here, you're right keep bug tracking in this thread)

Quote:
Originally Posted by Budius View Post
what does say in the LOG tab?

Try running from the terminal: ffprobe <video_path>.mp4 Does it work or does it say "can't find command ffprobe" ?

at the end of this https://trac.ffmpeg.org/wiki/UbuntuCompilationGuide it shows how to add the ffmpeg to the path
Your tool says
[ERROR] Failed to get FFPROBE for /mnt/320gb/TEMP/Downloads/Lakes Sep 2013/VID_20130926_112924.mp4

Command line just works

ffprobe VID_20130926_112924.mp4
avprobe version 0.8.10-4:0.8.10-0ubuntu0.12.04.1, Copyright (c) 2007-2013 the Libav developers
built on Feb 6 2014 20:56:59 with gcc 4.6.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'VID_20130926_112924.mp4':
Metadata:
major_brand : isom
minor_version : 0
compatible_brands: isom3gp4
creation_time : 2013-09-26 10:29:58
Duration: 00:00:32.57, start: 0.000000, bitrate: 5109 kb/s
Stream #0.0(eng): Video: h264 (Constrained Baseline), yuv420p, 720x480, 5056 kb/s, PAR 65536:65536 DAR 3:2, 30.31 fps, 90k tbr, 90k tbn, 180k tbc
Metadata:
creation_time : 2013-09-26 10:29:58
Stream #0.1(eng): Audio: aac, 48000 Hz, mono, s16, 96 kb/s
Metadata:
creation_time : 2013-09-26 10:29:58
31st March 2014, 08:16 PM |#7  
OP Senior Member
Thanks Meter: 60
 
More
Quote:
Originally Posted by nigelhealy

Command line just works

ffprobe VID_20130926_112924.mp4
avprobe version 0.8.10-4:0.8.10-0

well, I can see that it's a different version of the ffprobe I'm using, so let's try the exact same command the software is doing, try this:

Code:
ffprobe -v quiet -print_format json -show_format -show_streams VID_20130926_112924.mp4
it should give a Json string, something similar to this (but with the information about your video):

Code:
{
  "streams": [{
    "index": 0,
    "codec_name": "wmv3",
    "codec_long_name": "Windows Media Video 9",
    "codec_type": "video",
    "codec_time_base": "1/1000",
    "codec_tag_string": "WMV3",
    "codec_tag": "0x33564d57",
    "width": 320,
    "height": 240,
    "has_b_frames": 0,
    "pix_fmt": "yuv420p",
    "level": -99,
    "r_frame_rate": "30000/1001",
    "avg_frame_rate": "0/0",
    "time_base": "1/1000",
    "start_time": "0.000",
    "duration": "300.066",
    "tags": {
        "language": "eng"
    }
  }],
  "format": {
    "filename": "somefile.asf",
    "nb_streams": 1,
    "format_name": "asf",
    "format_long_name": "ASF format",
    "start_time": "0.000",
    "duration": "300.066",
    "tags": {
        "WMFSDKVersion": "10.00.00.3646",
        "WMFSDKNeeded": "0.0.0.0000",
        "IsVBR": "0"
    }
  }
}
31st March 2014, 08:24 PM |#8  
nigelhealy's Avatar
Senior Member
Flag San Francisco
Thanks Meter: 398
 
More
Quote:
Originally Posted by Budius

well, I can see that it's a different version of the ffprobe I'm using, so let's try the exact same command the software is doing, try this:

Code:
ffprobe -v quiet -print_format json -show_format -show_streams VID_20130926_112924.mp4
it should give a Json string, something similar to this (but with the information about your video):

Code:
{
  "streams": [{
    "index": 0,
    "codec_name": "wmv3",
    "codec_long_name": "Windows Media Video 9",
    "codec_type": "video",
    "codec_time_base": "1/1000",
    "codec_tag_string": "WMV3",
    "codec_tag": "0x33564d57",
    "width": 320,
    "height": 240,
    "has_b_frames": 0,
    "pix_fmt": "yuv420p",
    "level": -99,
    "r_frame_rate": "30000/1001",
    "avg_frame_rate": "0/0",
    "time_base": "1/1000",
    "start_time": "0.000",
    "duration": "300.066",
    "tags": {
        "language": "eng"
    }
  }],
  "format": {
    "filename": "somefile.asf",
    "nb_streams": 1,
    "format_name": "asf",
    "format_long_name": "ASF format",
    "start_time": "0.000",
    "duration": "300.066",
    "tags": {
        "WMFSDKVersion": "10.00.00.3646",
        "WMFSDKNeeded": "0.0.0.0000",
        "IsVBR": "0"
    }
  }
}


Nope it just gives nothing, like it worked

Code:
ls -l VID_20130926_112924.mp4
-rwxrwxrwx 1 root root 20805982 Sep 26  2013 VID_20130926_112924.mp4
ffprobe -v quiet -print_format json -show_format -show_streams VID_20130926_112924.mp4
$
other info

Code:
whereis ffprobe
ffprobe: /usr/bin/ffprobe /usr/bin/X11/ffprobe

ffprobe -version
avprobe version 0.8.10-4:0.8.10-0ubuntu0.12.04.1, Copyright (c) 2007-2013 the Libav developers
  built on Feb  6 2014 20:56:59 with gcc 4.6.3
avprobe 0.8.10-4:0.8.10-0ubuntu0.12.04.1
libavutil    51. 22. 2 / 51. 22. 2
libavcodec   53. 35. 0 / 53. 35. 0
libavformat  53. 21. 1 / 53. 21. 1
libavdevice  53.  2. 0 / 53.  2. 0
libavfilter   2. 15. 0 /  2. 15. 0
libswscale    2.  1. 0 /  2.  1. 0
libpostproc  52.  0. 0 / 52.  0. 0


---------- Post added at 12:24 PM ---------- Previous post was at 12:21 PM ----------

command line syntax error in what you asked? If I remove the -quiet it says

Code:
Unrecognized option 'print_format'
Failed to set value 'json' for option 'print_format'
31st March 2014, 08:28 PM |#9  
OP Senior Member
Thanks Meter: 60
 
More
Quote:
Originally Posted by nigelhealy



---------- Post added at 12:24 PM ---------- Previous post was at 12:21 PM ----------

command line syntax error in what you asked? If I remove the -quiet it says

Code:
Unrecognized option 'print_format'
Failed to set value 'json' for option 'print_format'

well that's the problem then. Somehow your version of FFPROBE does not understand to give a Json output.
The ffmpeg and ffprobe I'm using here are brand new compilations I did last week using that guide.

I should remove the -quiet option so whenever it fails it gives a more descriptive error in the app.

That's what my -version looks like
Code:
ffprobe version 2.2.git
built on Mar 22 2014 15:55:09 with gcc 4.7 (Ubuntu/Linaro 4.7.3-1ubuntu1)
configuration: --prefix=/home/budius/ffmpeg_build --extra-cflags=-I/home/budius/ffmpeg_build/include --extra-ldflags=-L/home/budius/ffmpeg_build/lib --bindir=/home/budius/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-x11grab
libavutil      52. 67.100 / 52. 67.100
libavcodec     55. 52.102 / 55. 52.102
libavformat    55. 34.101 / 55. 34.101
libavdevice    55. 11.100 / 55. 11.100
libavfilter     4.  3.100 /  4.  3.100
libswscale      2.  5.102 /  2.  5.102
libswresample   0. 18.100 /  0. 18.100
libpostproc    52.  3.100 / 52.  3.100
so my best advice if you want to use the tool is to, remove/delete your current version of FFMPEG/FFPROBE and re-compile it using the guide =]
31st March 2014, 09:25 PM |#10  
nigelhealy's Avatar
Senior Member
Flag San Francisco
Thanks Meter: 398
 
More
Quote:
Originally Posted by Budius


so my best advice if you want to use the tool is to, remove/delete your current version of FFMPEG/FFPROBE and re-compile it using the guide =]

I have

It is now running but an opposite problem, it is converting files which ALREADY work on Chromecast, like MP4 files which work just fine.

It is improving them how?

The Chromecast log is empty this is what was showing in the console from which the Java command ran

Code:
ffprobe parsing file: /mnt/320gb/TEMP/Downloads/Natural_World_-_2013-2014_Giant_Squid_2._Filming_the_Impossible_-_Natural_World_Special_b0377t15_default.mp4
ffprobe version 2.2.git Copyright (c) 2007-2014 the FFmpeg developers
  built on Mar 31 2014 13:10:45 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --prefix=/home/nigel/ffmpeg_build --extra-cflags=-I/home/nigel/ffmpeg_build/include --extra-ldflags=-L/home/nigel/ffmpeg_build/lib --bindir=/home/nigel/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
  libavutil      52. 70.100 / 52. 70.100
  libavcodec     55. 55.106 / 55. 55.106
  libavformat    55. 36.100 / 55. 36.100
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  3.100 /  4.  3.100
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/mnt/320gb/TEMP/Downloads/Natural_World_-_2013-2014_Giant_Squid_2._Filming_the_Impossible_-_Natural_World_Special_b0377t15_default.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 1970-01-01 00:00:00
    encoder         : Lavf52.111.0
  Duration: 00:44:05.59, start: 0.000000, bitrate: 1501 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 832x468 [SAR 117:117 DAR 16:9], 1401 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 94 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : SoundHandler
Runtime execution finished with success
Runtime execution finished with success
Starting first pass for file: /mnt/320gb/TEMP/Downloads/Natural_World_-_2013-2014_Giant_Squid_2._Filming_the_Impossible_-_Natural_World_Special_b0377t15_default.mp4
Executing [ffmpeg -i /mnt/320gb/TEMP/Downloads/Natural_World_-_2013-2014_Giant_Squid_2._Filming_the_Impossible_-_Natural_World_Special_b0377t15_default.mp4 -c:v libx264 -profile:v high -level 5 -preset slow -b:v 1401533 -an -pass 1 /mnt/320gb/TEMP/Downloads/Natural_World_-_2013-2014_Giant_Squid_2._Filming_the_Impossible_-_Natural_World_Special_b0377t15_default_1_temp.mp4]
ffmpeg version 2.2.git Copyright (c) 2000-2014 the FFmpeg developers
  built on Mar 31 2014 13:10:45 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --prefix=/home/nigel/ffmpeg_build --extra-cflags=-I/home/nigel/ffmpeg_build/include --extra-ldflags=-L/home/nigel/ffmpeg_build/lib --bindir=/home/nigel/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
  libavutil      52. 70.100 / 52. 70.100
  libavcodec     55. 55.106 / 55. 55.106
  libavformat    55. 36.100 / 55. 36.100
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  3.100 /  4.  3.100
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/mnt/320gb/TEMP/Downloads/Natural_World_-_2013-2014_Giant_Squid_2._Filming_the_Impossible_-_Natural_World_Special_b0377t15_default.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 1970-01-01 00:00:00
    encoder         : Lavf52.111.0
  Duration: 00:44:05.59, start: 0.000000, bitrate: 1501 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 832x468 [SAR 117:117 DAR 16:9], 1401 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 94 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : SoundHandler
[libx264 @ 0x3ca32e0] using SAR=1/1
[libx264 @ 0x3ca32e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x3ca32e0] profile Main, level 5.0
[libx264 @ 0x3ca32e0] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x1:0 me=dia subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=abr mbtree=1 bitrate=1401 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '/mnt/320gb/TEMP/Downloads/Natural_World_-_2013-2014_Giant_Squid_2._Filming_the_Impossible_-_Natural_World_Special_b0377t15_default_1_temp.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf55.36.100
    Stream #0:0(und): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 832x468 [SAR 117:117 DAR 16:9], q=-1--1, pass 1, 1401 kb/s, 12800 tbn, 25 tbc (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libx264)
Press [q] to stop, [?] for help
frame=   67 fps=0.0 q=26.0 size=       1kB time=00:00:00.20 bitrate=  50.5kbits/s dup=2 drop=0    
frame=  112 fps=111 q=29.0 size=    1239kB time=00:00:02.00 bitrate=5073.3kbits/s dup=2 drop=0    
frame=  159 fps=105 q=34.0 size=    1555kB time=00:00:03.88 bitrate=3283.6kbits/s dup=2 drop=0    
frame=  216 fps=106 q=35.0 size=    1825kB time=00:00:06.16 bitrate=2427.6kbits/s dup=2 drop=0    
frame=  283 fps=111 q=32.0 size=    1970kB time=00:00:08.84 bitrate=1825.7kbits/s dup=2 drop=0    
frame=  354 fps=116 q=28.0 size=    2142kB time=00:00:11.68 bitrate=1502.1kbits/s dup=2 drop=0    
frame=  422 fps=118 q=26.0 size=    2377kB time=00:00:14.40 bitrate=1352.0kbits/s dup=2 drop=0    
frame=  486 fps=119 q=24.0 size=    2677kB time=00:00:16.96 bitrate=1293.0kbits/s dup=2 drop=0    
frame=  550 fps=120 q=23.0 size=    3020kB time=00:00:19.52 bitrate=1267.3kbits/s dup=2 drop=0    
frame=  625 fps=122 q=21.0 size=    3301kB time=00:00:22.52 bitrate=1200.8kbits/s dup=2 drop=0    
frame=  691 fps=123 q=20.0 size=    3651kB time=00:00:25.16 bitrate=1188.6kbits/s dup=2 drop=0    
frame=  749 fps=123 q=20.0 size=    4082kB time=00:00:27.48 bitrate=1217.0kbits/s dup=2 drop=0    
frame=  804 fps=122 q=19.0 size=    4406kB time=00:00:29.68 bitrate=1216.1kbits/s dup=2 drop=0    
^Cnigel@T420ubuntu:~/Downloads$
31st March 2014, 09:55 PM |#11  
OP Senior Member
Thanks Meter: 60
 
More
Smile
Quote:
Originally Posted by nigelhealy

Code:
ffprobe parsing file: /mnt/320gb/TEMP/Downloads/Natural_World_-_2013-2014_Giant_Squid_2._Filming_the_Impossible_-_Natural_World_Special_b0377t15_default.mp4
ffprobe version 2.2.git Copyright (c) 2007-2014 the FFmpeg developers
  built on Mar 31 2014 13:10:45 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --prefix=/home/nigel/ffmpeg_build --extra-cflags=-I/home/nigel/ffmpeg_build/include --extra-ldflags=-L/home/nigel/ffmpeg_build/lib --bindir=/home/nigel/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
  libavutil      52. 70.100 / 52. 70.100
  libavcodec     55. 55.106 / 55. 55.106
  libavformat    55. 36.100 / 55. 36.100
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  3.100 /  4.  3.100
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/mnt/320gb/TEMP/Downloads/Natural_World_-_2013-2014_Giant_Squid_2._Filming_the_Impossible_-_Natural_World_Special_b0377t15_default.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 1970-01-01 00:00:00
    encoder         : Lavf52.111.0
  Duration: 00:44:05.59, start: 0.000000, bitrate: 1501 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 832x468 [SAR 117:117 DAR 16:9], 1401 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 94 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : SoundHandler
Runtime execution finished with success
Runtime execution finished with success
Starting first pass for file: /mnt/320gb/TEMP/Downloads/Natural_World_-_2013-2014_Giant_Squid_2._Filming_the_Impossible_-_Natural_World_Special_b0377t15_default.mp4
Executing [ffmpeg -i /mnt/320gb/TEMP/Downloads/Natural_World_-_2013-2014_Giant_Squid_2._Filming_the_Impossible_-_Natural_World_Special_b0377t15_default.mp4 -c:v libx264 -profile:v high -level 5 -preset slow -b:v 1401533 -an -pass 1 /mnt/320gb/TEMP/Downloads/Natural_World_-_2013-2014_Giant_Squid_2._Filming_the_Impossible_-_Natural_World_Special_b0377t15_default_1_temp.mp4]
ffmpeg version 2.2.git Copyright (c) 2000-2014 the FFmpeg developers
  built on Mar 31 2014 13:10:45 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --prefix=/home/nigel/ffmpeg_build --extra-cflags=-I/home/nigel/ffmpeg_build/include --extra-ldflags=-L/home/nigel/ffmpeg_build/lib --bindir=/home/nigel/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
  libavutil      52. 70.100 / 52. 70.100
  libavcodec     55. 55.106 / 55. 55.106
  libavformat    55. 36.100 / 55. 36.100
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  3.100 /  4.  3.100
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/mnt/320gb/TEMP/Downloads/Natural_World_-_2013-2014_Giant_Squid_2._Filming_the_Impossible_-_Natural_World_Special_b0377t15_default.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 1970-01-01 00:00:00
    encoder         : Lavf52.111.0
  Duration: 00:44:05.59, start: 0.000000, bitrate: 1501 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 832x468 [SAR 117:117 DAR 16:9], 1401 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 94 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : SoundHandler
[libx264 @ 0x3ca32e0] using SAR=1/1
[libx264 @ 0x3ca32e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x3ca32e0] profile Main, level 5.0
[libx264 @ 0x3ca32e0] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x1:0 me=dia subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=abr mbtree=1 bitrate=1401 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '/mnt/320gb/TEMP/Downloads/Natural_World_-_2013-2014_Giant_Squid_2._Filming_the_Impossible_-_Natural_World_Special_b0377t15_default_1_temp.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf55.36.100
    Stream #0:0(und): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 832x468 [SAR 117:117 DAR 16:9], q=-1--1, pass 1, 1401 kb/s, 12800 tbn, 25 tbc (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libx264)
Press [q] to stop, [?] for help
frame=   67 fps=0.0 q=26.0 size=       1kB time=00:00:00.20 bitrate=  50.5kbits/s dup=2 drop=0    
frame=  112 fps=111 q=29.0 size=    1239kB time=00:00:02.00 bitrate=5073.3kbits/s dup=2 drop=0    
frame=  159 fps=105 q=34.0 size=    1555kB time=00:00:03.88 bitrate=3283.6kbits/s dup=2 drop=0    
frame=  216 fps=106 q=35.0 size=    1825kB time=00:00:06.16 bitrate=2427.6kbits/s dup=2 drop=0    
frame=  283 fps=111 q=32.0 size=    1970kB time=00:00:08.84 bitrate=1825.7kbits/s dup=2 drop=0    
frame=  354 fps=116 q=28.0 size=    2142kB time=00:00:11.68 bitrate=1502.1kbits/s dup=2 drop=0    
frame=  422 fps=118 q=26.0 size=    2377kB time=00:00:14.40 bitrate=1352.0kbits/s dup=2 drop=0    
frame=  486 fps=119 q=24.0 size=    2677kB time=00:00:16.96 bitrate=1293.0kbits/s dup=2 drop=0    
frame=  550 fps=120 q=23.0 size=    3020kB time=00:00:19.52 bitrate=1267.3kbits/s dup=2 drop=0    
frame=  625 fps=122 q=21.0 size=    3301kB time=00:00:22.52 bitrate=1200.8kbits/s dup=2 drop=0    
frame=  691 fps=123 q=20.0 size=    3651kB time=00:00:25.16 bitrate=1188.6kbits/s dup=2 drop=0    
frame=  749 fps=123 q=20.0 size=    4082kB time=00:00:27.48 bitrate=1217.0kbits/s dup=2 drop=0    
frame=  804 fps=122 q=19.0 size=    4406kB time=00:00:29.68 bitrate=1216.1kbits/s dup=2 drop=0    
^Cnigel@T420ubuntu:~/Downloads$

First of all, I'm very happy that you got it working . I wish I could just pack FFMPEG with the software so it would be more user friendly, but because it uses the "-non-free" stuff I don't want to get in trouble for helping others.

I don't believe it's improving in any way, but I'll tell your what is happening.
Those are the format officially supported by the Chromecast https://developers.google.com/cast/docs/media

I did noticed that in reality it can run some little variations, for example, your video is h264 Profile: Main avc1 and it works.
Another example, it will cast without issues .MKV files with an appropriate h264 stream.

But for correctness the software converts anything that is not exactly as shown in the official website. I mean, I gotta follow the official stuff.

I just think it's very weird that the log is not showing as it's supposed to show the same thing from your console output.
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes