TiVo Community Forum banner
6,281 - 6,300 of 13,557 Posts
Open a "cmd" window and run the .bat from there and post any output you get so I can see the full ffmpeg command as well as other commands that are being run. i.e. Execute this in cmd window:
Here's the screen capture from the cmd window:
Code:
C:\>C:\Users\Public\Documents\kmttg\encode\ff_tivo_subtitles.bat "G:\Video\TV Sh
ows\The Returned\Season 01\The Returned-S01E01-Camille.mkv" "G:\Video\TV Shows\T
he Returned\Season 01\The Returned-S01E01-Camille.srt" "F:\TiVo\MP4\The Returned
-S01E01-Camille.mpg" C:\Users\Public\Documents\kmttg\ffmpeg\ffmpeg.exe 8  >> "C:
\Users\Public\Documents\kmttg\encode\log.txt"
ffmpeg version N-53033-g56ba331 Copyright (c) 2000-2013 the FFmpeg developers
  built on May 13 2013 22:18:29 with gcc 4.7.3 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrn
b --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libr
tmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheo
ra --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-li
bvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --ena
ble-zlib
  libavutil      52. 31.100 / 52. 31.100
  libavcodec     55.  9.100 / 55.  9.100
  libavformat    55.  7.100 / 55.  7.100
  libavdevice    55.  0.100 / 55.  0.100
  libavfilter     3. 65.100 /  3. 65.100
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
Input #0, matroska,webm, from 'G:\Video\TV Shows\The Returned\Season 01\The Retu
rned-S01E01-Camille.mkv':
  Metadata:
    creation_time   : 2013-11-28 21:11:53
  Duration: 00:54:58.05, start: 0.000000, bitrate: 5678 kb/s
    Chapter #0.0: start 0.000000, end 576.360000
    Metadata:
      title           : 00:00:00.000
    Chapter #0.1: start 576.360000, end 1081.720000
    Metadata:
      title           : 00:09:36.360
    Chapter #0.2: start 1081.720000, end 1710.440000
    Metadata:
      title           : 00:18:01.720
    Chapter #0.3: start 1710.440000, end 2363.280000
    Metadata:
      title           : 00:28:30.440
    Chapter #0.4: start 2363.280000, end 2825.160000
    Metadata:
      title           : 00:39:23.280
    Chapter #0.5: start 2825.160000, end 3298.048000
    Metadata:
      title           : 00:47:05.160
    Stream #0:0(eng): Video: h264 (High), yuv420p, 1280x720, SAR 1:1 DAR 16:9, 2
5 fps, 25 tbr, 1k tbn, 50 tbc (default)
    Stream #0:1(fre): Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s (de
fault)
    Metadata:
      title           : DTS 5.1
    Stream #0:2(eng): Subtitle: subrip (default) (forced)
Please use -b:a or -b:v, -b is ambiguous
Here's the output from the batch file:
Code:
C:\>set FC_CONFIG_DIR=C:\Users\Public\Documents\kmttg\encode\ 

C:\>set FONTCONFIG_PATH=C:\Users\Public\Documents\kmttg\encode\ 

C:\>set FONTCONFIG_FILE=fonts.conf 

C:\>set INPUT="G:\Video\TV Shows\The Returned\Season 01\The Returned-S01E01-Camille.mkv" 

C:\>set SRTFILE="The Returned-S01E01-Camille.srt" 

C:\>set OUTPUT="F:\TiVo\MP4\The Returned-S01E01-Camille.mpg" 

C:\>set FFMPEG=C:\Users\Public\Documents\kmttg\ffmpeg\ffmpeg.exe 

C:\>set CPU_CORES=8 

C:\>cd "G:\Video\TV Shows\The Returned\Season 01\" 

C:\>C:\Users\Public\Documents\kmttg\ffmpeg\ffmpeg.exe -y -i "G:\Video\TV Shows\The Returned\Season 01\The Returned-S01E01-Camille.mkv" -threads 8 -acodec ac3 -vcodec mpeg2video -vf subtitles="The Returned-S01E01-Camille.srt" -b 28500k -maxrate 30000k -bufsize 4096k -ab 448k -ar 48000 -copyts -fflags genpts -f dvd "F:\TiVo\MP4\The Returned-S01E01-Camille.mpg"
 
Discussion starter · #6,282 ·
Don't see anything wrong with the .bat file setup.
Does the .srt file actually exist and with correct syntax?
i.e. Double check the srt file is actually there:
"G:\Video\TV Shows\The Returned\Season 01\The Returned-S01E01-Camille.srt"

If you confirm the srt file exists then I would suggest perhaps renaming all input files to remove space after 'The' to see if that makes any difference. (Although I'm pretty sure I tested file names with spaces with above setup and got it to work as well).
 
If you confirm the srt file exists then I would suggest perhaps renaming all input files to remove space after 'The' to see if that makes any difference.
The file exists. Here's a portion of "Returned-S01E01-Camille.srt"
Code:
1
00:00:47,840 --> 00:00:49,080
Here, Camille.

2
00:00:52,320 --> 00:00:55,960
Your answers
should be short and clear.

3
00:00:56,960 --> 00:00:58,160
Due on Tuesday.

4
00:00:58,640 --> 00:00:59,840
Tuesday?

5
00:01:00,240 --> 00:01:03,760
–*We already have a math test!
–*You had plenty of time for that.

6
00:01:40,240 --> 00:01:43,360
TODAY

7
00:04:00,600 --> 00:04:04,480


8
00:05:04,760 --> 00:05:06,800
Sorry, it doesnÂ’t work sometimes.

9
00:05:07,920 --> 00:05:10,640
–*I’ll see you next week.
–*Sure.

10
00:05:17,080 --> 00:05:18,080
Léna.

11
00:05:18,320 --> 00:05:20,280
Your dad just went to see Lucy again?

12
00:05:28,720 --> 00:05:30,480
IsnÂ’t it the third time this week?

13
00:05:33,920 --> 00:05:36,200
–*You’re a dick.
–*Just saying.

14
00:06:10,880 --> 00:06:13,440
We will start in a few minutes,

15
00:06:13,680 --> 00:06:16,280
but first, I believeÂ…

16
00:06:16,520 --> 00:06:18,920
Sandrine would like
to tell us something.

17
00:06:20,480 --> 00:06:21,720
WellÂ…

18
00:06:23,800 --> 00:06:24,960
Yan and I,

19
00:06:25,440 --> 00:06:28,760
we thought you should know
that we are going to have a baby.

20
00:06:31,720 --> 00:06:33,560
ItÂ’s been hard,
And here's the latest kmttg results:
Code:
OVERWRITING EXISTING FILE: F:\TiVo\MP4\Returned-S01E01-Camille.mpg
>> ENCODING WITH PROFILE 'ff_tivo_subtitles' TO FILE F:\TiVo\MP4\Returned-S01E01-Camille.mpg ...
C:\Users\Public\Documents\kmttg\encode\ff_tivo_subtitles.bat "G:\Video\TV Shows\The Returned\Season 01\Returned-S01E01-Camille.mkv" "G:\Video\TV Shows\The Returned\Season 01\Returned-S01E01-Camille.srt" F:\TiVo\MP4\Returned-S01E01-Camille.mpg C:\Users\Public\Documents\kmttg\ffmpeg\ffmpeg.exe 8 
encoding failed (exit code: 1 ) - check command: C:\Users\Public\Documents\kmttg\encode\ff_tivo_subtitles.bat "G:\Video\TV Shows\The Returned\Season 01\Returned-S01E01-Camille.mkv" "G:\Video\TV Shows\The Returned\Season 01\Returned-S01E01-Camille.srt" F:\TiVo\MP4\Returned-S01E01-Camille.mpg C:\Users\Public\Documents\kmttg\ffmpeg\ffmpeg.exe 8 
ffmpeg version N-53033-g56ba331 Copyright (c) 2000-2013 the FFmpeg developers
  built on May 13 2013 22:18:29 with gcc 4.7.3 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 31.100 / 52. 31.100
  libavcodec     55.  9.100 / 55.  9.100
  libavformat    55.  7.100 / 55.  7.100
  libavdevice    55.  0.100 / 55.  0.100
  libavfilter     3. 65.100 /  3. 65.100
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
Input #0, matroska,webm, from 'G:\Video\TV Shows\The Returned\Season 01\Returned-S01E01-Camille.mkv':
  Metadata:
    creation_time   : 2013-11-28 21:11:53
  Duration: 00:54:58.05, start: 0.000000, bitrate: 5678 kb/s
    Chapter #0.0: start 0.000000, end 576.360000
    Metadata:
      title           : 00:00:00.000
    Chapter #0.1: start 576.360000, end 1081.720000
    Metadata:
      title           : 00:09:36.360
    Chapter #0.2: start 1081.720000, end 1710.440000
    Metadata:
      title           : 00:18:01.720
    Chapter #0.3: start 1710.440000, end 2363.280000
    Metadata:
      title           : 00:28:30.440
    Chapter #0.4: start 2363.280000, end 2825.160000
    Metadata:
      title           : 00:39:23.280
    Chapter #0.5: start 2825.160000, end 3298.048000
    Metadata:
      title           : 00:47:05.160
    Stream #0:0(eng): Video: h264 (High), yuv420p, 1280x720, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
    Stream #0:1(fre): Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s (default)
    Metadata:
      title           : DTS 5.1
    Stream #0:2(eng): Subtitle: subrip (default) (forced)
[Parsed_subtitles_0 @ 0408b280] Unable to open Returned-S01E01-Camille.srt
[AVFilterGraph @ 0240ed40] Error initializing filter 'subtitles' with args 'Returned-S01E01-Camille.srt'
Error opening filters!
Any other thoughts?
 
Discussion starter · #6,284 ·
Well, the problem is ffmpeg can't seem to open/read the .srt file, so that is the problem that needs to be solved. I have not found a way to be able to specify a full path to srt file for ffmpeg as part of the -vf option, so it has to be run in the same directory as the .srt file, which the above .bat file is doing. But perhaps somehow that is not working. But you can try the following manually in a "cmd" window to see what happens:
Code:
cd G:\Video\TV Shows\The Returned\Season 01
C:\>C:\Users\Public\Documents\kmttg\ffmpeg\ffmpeg.exe -y -i Returned-S01E01-Camille.mkv -threads 8 -acodec ac3 -vcodec mpeg2video -vf subtitles="Returned-S01E01-Camille.srt" -b 28500k -maxrate 30000k -bufsize 4096k -ab 448k -ar 48000 -copyts -fflags genpts -f dvd "F:\TiVo\MP4\Returned-S01E01-Camille.mpg"
Perhaps as an alternative ffmpeg command try with modified -vf argument:
Code:
C:\>C:\Users\Public\Documents\kmttg\ffmpeg\ffmpeg.exe -y -i Returned-S01E01-Camille.mkv -threads 8 -acodec ac3 -vcodec mpeg2video -vf "subtitles=Returned-S01E01-Camille.srt" -b 28500k -maxrate 30000k -bufsize 4096k -ab 448k -ar 48000 -copyts -fflags genpts -f dvd "F:\TiVo\MP4\Returned-S01E01-Camille.mpg"
If still no go then perhaps check the permissions of the .srt file to make sure it is readable by everyone.

i.e. You 1st need to get things working on command line, then worry about getting it to work from kmttg.
 
Well, the problem is ffmpeg can't seem to open/read the .srt file, so that is the problem that needs to be solved. I have not found a way to be able to specify a full path to srt file for ffmpeg as part of the -vf option, so it has to be run in the same directory as the .srt file, which the above .bat file is doing. But perhaps somehow that is not working. But you can try the following manually in a "cmd" window to see what happens:
Well, I finally worked it out!

I had to tweak ff_tivo_subtitles.bat as follows:
Code:
set INPUT=%1
set SRTFILE="%~n2%~x2"
set OUTPUT=%3
set FFMPEG=%4
set CPU_CORES=%5
cd "%~dp2"
%~d2
%FFMPEG% -y -i %INPUT% -threads %CPU_CORES% -acodec ac3 -vcodec mpeg2video -vf subtitles=%SRTFILE% -b:v 28500k -maxrate 30000k -bufsize 4096k -ab 448k -ar 48000 -copyts -fflags genpts -f dvd %OUTPUT%
I didn't need to set the global environment variables. They seemed to be irrelevant in my situation.

I also needed to add the line "%~d2" to not only change the directory, but to change the operating drive.

I also had to put the fonts.conf file in a "fonts" subdirectory under the ffmpeg directory; e.g., "C:\Users\Public\Documents\kmttg\ffmpeg\fonts\fonts.conf". I got the idea from http://ffmpeg.zeranoe.com/forum/viewtopic.php?f=10&t=318&sid=2b078877dc456ca5e4a346d76b34d930&start=30

Do you think you could add the fonts.conf file to your tool update process? Otherwise, I think your tool update process will wipe it out with every update.

One other thing I discovered: ffmpeg doesn't like commas in the srt file name.

Once I adjusted your process everything processed correctly!

Thanks again for all of your help!

Do you think this solution warrants documenting on your wiki? If so, is there anything I can do to help?
 
So I have a weird request -

I have kmttg set up where it auto transfers within the GUI but still brings up VRD to look over the cuts before performing them and pushing back to the TiVo, mostly because it never seems to get the cuts just right.

Anyway - I am setting up another computer specifically for handling these kmttg tasks, but I was wondering if there was an easy way to do both of the following:

1) an option to have kmttg delete the files from the PC after a successful push. This could easily be done by having kmttg compare the length of the video on the PC to the length of the video on the TiVo, or comparing another variable which would be specific to a completed pushed file from the PC.

2) any way to have the VRD review come up on a different computer - so I can task the HD processor and memory of a dedicated PC tucked away in a closet while still having the VRD review pop up on my main laptop.


Also - unrelated to that, is there any way to update the VRD scripts so they work with the current stable release AND beta release regarding minimizing to the tray while working? I have to edit the VRD script files every time I perform an update to kmttg...

Any ideas?
 
Are you seeing, when KMTTG has "only 1 download at a time" checked, it seems broken. It still downloads from several Tivos at the same time instead of just 1?
 
So I have a weird request -

I have kmttg set up where it auto transfers within the GUI but still brings up VRD to look over the cuts before performing them and pushing back to the TiVo, mostly because it never seems to get the cuts just right.

Anyway - I am setting up another computer specifically for handling these kmttg tasks, but I was wondering if there was an easy way to do both of the following:

1) an option to have kmttg delete the files from the PC after a successful push. This could easily be done by having kmttg compare the length of the video on the PC to the length of the video on the TiVo, or comparing another variable which would be specific to a completed pushed file from the PC.

2) any way to have the VRD review come up on a different computer - so I can task the HD processor and memory of a dedicated PC tucked away in a closet while still having the VRD review pop up on my main laptop.

Also - unrelated to that, is there any way to update the VRD scripts so they work with the current stable release AND beta release regarding minimizing to the tray while working? I have to edit the VRD script files every time I perform an update to kmttg...

Any ideas?
1) Don't think it will be accurate because Tivo file sizes are different then files on a PC.
2) You can open any video file in VRD on another PC, just open the file in VRD instead of having KMTTG as the middleman. To have VRD do auto-adcut, it does not do an accurate job since VRD use a 2 sec blank screen to indicate a possible commercial break point and it would be wise to manually check it as it might be cutting something else out.
 
1) That's why I suggested using the time, or another variable to compare with, since the file size will not be the same

2) I was hoping to come up with a way to have kmttg pop up VRD review on another computer instead of doing it manually, so when I close it, it will invoke the push automatically like it does now. Don't want to change anything other than VRD review popping up on a different computer.
 
Discussion starter · #6,292 ·
1) an option to have kmttg delete the files from the PC after a successful push. This could easily be done by having kmttg compare the length of the video on the PC to the length of the video on the TiVo, or comparing another variable which would be specific to a completed pushed file from the PC.
This has been discussed before. kmttg has no idea when pyTivo push completes or if it completes successfully. All that kmttg does is send initial request to pyTivo and it handles everything else. So no, not something I would envision adding.

2) any way to have the VRD review come up on a different computer - so I can task the HD processor and memory of a dedicated PC tucked away in a closet while still having the VRD review pop up on my main laptop.
Don't think that's possible.

Also - unrelated to that, is there any way to update the VRD scripts so they work with the current stable release AND beta release regarding minimizing to the tray while working? I have to edit the VRD script files every time I perform an update to kmttg...
What kind of changes specifically are you referring to?
 
2) any way to have the VRD review come up on a different computer - so I can task the HD processor and memory of a dedicated PC tucked away in a closet while still having the VRD review pop up on my main laptop.
I have a PC tucked away running Win 7 Pro with auto-transfers enabled on kmttg. Shows accumulate on an SSD on this PC. I then remote desktop into the PC from a laptop and review edits in VideoRedo, complete ad-cut and encode in kmttg on that tucked away PC.

I had to disable remote audio in remote desktop for VideoRedo to work right so you get no sound. I also work with a small video window as full screen video over remote desktop is laggy. I've even remoted into this PC while traveling to review edits.
 
moyekj -

1) My idea was for when kmttg is set up to automatically refresh the NPL, it compares that list to a list of shows added to be pushed, maybe stored in the auto.history file?. If a pushed show matches a show on the NPL, and the length (time) or another variable within the metadata matches up, then the source file and meta file on the PC are deleted, as kmttg would determine it was a successful push.

3) Currently, all of the VRD scripts need to be edited to work properly with version 3.10.3.629 (11/09/11) otherwise they will not minimize to the tray. Here is what I have been changing:

Code:
'Create VideoReDo object and open the source project / file.
if (VrdAllowMultiple) then
   Set VideoReDo = wscript.CreateObject( "VideoReDo.Application" )
   VideoReDo.SetQuietMode(true)
else
   Set VideoReDoSilent = wscript.CreateObject( "VideoReDo.VideoReDoSilent" )
   set VideoReDo = VideoReDoSilent.VRDInterface
end if
changes to:

Code:
'Create VideoReDo object and open the source project / file.

   Set VideoReDoSilent = wscript.CreateObject( "VideoReDo.VideoReDoSilent" )
   set VideoReDo = VideoReDoSilent.VRDInterface
 
Discussion starter · #6,295 ·
For issue 3, the kmttg config VRD setting "Allow multiple VideoRedo jobs at once" is what turns on "VrdAllowMultiple" setting when enabled. So if you turn that off then you will always get the silent interface. There was an issue with older VRD versions where silent mode would not allow more than 1 instance at a time which is where all that comes from. I guess if you really want to allow more than 1 VRD instance at a time I could possibly check VRD version and always disable "VrdAllowMultiple" for "new" versions of VRD. Problem is I don't know/remember what VRD version that issue was fixed for...
 
So I have a weird request
'Doesn't sound weird, to me.

1) an option to have kmttg delete the files from the PC after a successful push. This could easily be done by having kmttg compare the length of the video on the PC to the length of the video on the TiVo, or comparing another variable which would be specific to a completed pushed file from the PC.
That's the wrong approach, I think. From within kmttg is not the right place to handle such a process. Secondly, the file size is the wrong variable to check. TTG returns the following tag when a program is transferring:
Code:
<i>Recording</i>
A simple script can be written that repeatedly runs curl, searches for this tag, and deletes the source file when it switches to the "Download" URL or the "Protected" tag. The only caveat is this does not absolutely guarantee the transfer was completely successful. There are situations where a transfer fails, but a partial download is still kept on the TiVo. In this case, the source file would be deleted, even though the target is corrupted. Off the top of my head, I can't think how to prevent this.

2) any way to have the VRD review come up on a different computer - so I can task the HD processor and memory of a dedicated PC tucked away in a closet while still having the VRD review pop up on my main laptop.
It is most certainly possible. If VRD had a Linux port, it would be trivial to pop up a window on the laptop from the Linux server, but unfortunately there is not yet a Linux port of VRD. There may be a Windows app which allows an X-Like client to run on a Windows host and pop it on a common X-server (like X-Ming) running on another machine, but I don't know of one

It could be done with scripts running on both machines, one that tosses the .VRD file into a shared directory running on the kmttg server*, and one running on the laptop that looks for a VRD project file to pop up in the shared directory and responds by running VRD. Pretty simple, really, and it has the advantage that the laptop does not need to be running for the whole thing to work. The kmttg machine will toss the files into the directory, and the laptop will pop up VRD whenever it gets attached to the LAN.

* - Actually, this may be possible from within kmttg. IIRC correctly, I believe kmttg can be configured to run a command after processing is complete. A simple move command here would do the trick.
 
This has been discussed before. kmttg has no idea when pyTivo push completes or if it completes successfully. All that kmttg does is send initial request to pyTivo and it handles everything else.
Well, that is not exactly true, is it? When one refreshes the NPL, kmttg shows the status of the files as an icon on the left. I notice the rate parameter on the right sows "Infinity". It's no doubt true kmttg takes no particular notice of the transfer status, but it is not quite true it has no idea entirely when a push is in progress or that one is complete.

So no, not something I would envision adding.
Of course it is entirely your call, but FWIW, I agree with your decision. It would require having kmttg automatically refresh all the NPLs on a continuous basis, taking notice of the transfer status of every file every time. That's a pretty bad idea, if you ask me.

Don't think that's possible.
Oh, of course it is possible! With X-Windows, it would be easy, if only there were a VRD Linux port. It would not be difficult, either, to write a client program running on the kmttg machine that opens a port on a server on the other machine, telling it to spawn an instance of VRD on the project file. A pair of scripts like I mentioned above could handle it, as well, without requiring a server be available on the remote machine.
 
OK - so I went with the easiest option of setting up another PC with Win7 on it just to run kmttg, and using remote desktop..for now.

Running into a weird problem though. with auto transfers enabled, kmttg works fine, but while its processing a file after downloading, when it re-checks the list on the tivo, it starts the process again and for some reason doesnt realize its already in the middle of processing the same show.


Any ideas what would suddenly be causing this?
 
Discussion starter · #6,299 ·
Running into a weird problem though. with auto transfers enabled, kmttg works fine, but while its processing a file after downloading, when it re-checks the list on the tivo, it starts the process again and for some reason doesnt realize its already in the middle of processing the same show.

Any ideas what would suddenly be causing this?
After successful download "auto.history" file should be updated with the show just downloaded. So if that's failing for some reason (write permissions problem?) that would be why.
 
I have a PC tucked away running Win 7 Pro with auto-transfers enabled on kmttg. Shows accumulate on an SSD on this PC. I then remote desktop into the PC from a laptop and review edits in VideoRedo, complete ad-cut and encode in kmttg on that tucked away PC.

I had to disable remote audio in remote desktop for VideoRedo to work right so you get no sound. I also work with a small video window as full screen video over remote desktop is laggy. I've even remoted into this PC while traveling to review edits.
What do you do for the "Unable to initialize video display" error in VideoReDo? After I remote desktop in, and then disconnect, it produces this error. Also getting a "error opening Direct Sound audio device" error
 
6,281 - 6,300 of 13,557 Posts