Как обрезать черные полосы или увеличить на Youtube и других сайтах видео?


0

Многие настольные программы (VLC, MPC) имеют возможность «увеличивать», «обрезать черные полосы» или обрезать до определенного соотношения сторон. Как мы можем сделать это в полноэкранном режиме на Youtube или других сайтах Flash Video?

Я зритель, а не создатель / издатель видео.

iOS может сделать это (двойное касание для увеличения, которое удаляет черные полосы, глубина масштабирования не настраивается).

afaik, Настольные компьютеры (и устройства Android), не могут сделать это на лету. Единственный «обходной путь», который я нашел, - это F11 и масштабирование всей веб-страницы - в основном это полный экран и масштабирование веб-страницы за пределы размера экрана.

Вариант использования: просмотр видео в формате 4: 3 из Интернета на широкоэкранном мониторе.

Поиск всех креативных решений (при необходимости доступ к YouTube с использованием небраузеров для увеличения)


1
Moyea Youtube Player позволяет воспроизводить видео без браузера и имеет некоторую поддержку для сохранения. Minitube также делает это - ты действительно потратил какое-то время на исследование этого?
Дэйв

Это интересные замены браузера, но я не вижу функции для увеличения любого из них с целью удаления черных полос.
клонист

Ответы:


2

Посмотрите это в Firefox - установите Greasemonkey и добавьте этот скрипт . Позволяет переключаться между соотношениями (4: 3 и 16: 9).

Код обновляется с этого (и для Firefox и для Chrome)

// ==UserScript==
// @name           Youtube Aspect Remake
// @description    Adds buttons to toggle 4:3 and 16:9 aspect ratios on youtube, probs to the great work of scupizzaboy who mades this script. I've just changed the buttons to make them more adapt at the new youtube design. Original Script: http://userscripts.org/scripts/show/101165
// @namespace      NoXPhasma
// @include        http://youtube.*/*
// @include        http://*.youtube.*/*
// @include        https://youtube.*/*
// @include        https://*.youtube.*/*
// @version        9
// @date           2012-15-03
// ==/UserScript==

function setAspectWide()
{
    document = unsafeWindow.document;
    var player = document.getElementById('movie_player');
    var flashvars = player.getAttribute('flashvars').split('&');
    for (var i = 0; i < flashvars.length; i++)
    {
        if (flashvars[i].indexOf('keywords') == 0)
        {
            var keywords = flashvars[i].split('=')[1].split(',');
            var found = false;
            for (var j = 0; j < keywords.length; j++)
            {
                if (decodeURIComponent(keywords[j]) == 'yt:stretch=4:3')
                {
                    keywords[j] = encodeURIComponent('yt:stretch=16:9');
                    found = true;
                }
            }
            if (found == false)
            {
                keywords.push(encodeURIComponent('yt:stretch=16:9'));
            }
            flashvars[i] = 'keywords=' + keywords.join(',');
        }
    }
    player.setAttribute('flashvars', flashvars.join('&'));
    player.src += "";
}

function setAspectNarrow()
{
    document = unsafeWindow.document;
    var player = document.getElementById('movie_player');
    var flashvars = player.getAttribute('flashvars').split('&');
    for (var i = 0; i < flashvars.length; i++)
    {
        if (flashvars[i].indexOf('keywords') == 0)
        {
            var keywords = flashvars[i].split('=')[1].split(',');
            var found = false;
            for (var j = 0; j < keywords.length; j++)
            {
                if (decodeURIComponent(keywords[j]) == 'yt:stretch=16:9')
                {
                    keywords[j] = encodeURIComponent('yt:stretch=4:3');
                    found = true;
                }
            }
            if (found == false)
            {
                keywords.push(encodeURIComponent('yt:stretch=4:3'));
            }
            flashvars[i] = 'keywords=' + keywords.join(',');
        }
    }
    player.setAttribute('flashvars', flashvars.join('&'));
    player.src += "";
}

function fixWindowBox()
{
    document = unsafeWindow.document;
    var player = document.getElementById('movie_player');
    var flashvars = player.getAttribute('flashvars').split('&');
    for (var i = 0; i < flashvars.length; i++)
    {
        if (flashvars[i].indexOf('keywords') == 0)
        {
            var keywords = flashvars[i].split('=')[1].split(',');
            var found = false;
            for (var j = 0; j < keywords.length; j++)
            {
                if (decodeURIComponent(keywords[j]) == 'yt:crop=16:9')
                {
                    found = true;
                }
            }
            if (found == false)
            {
                keywords.push(encodeURIComponent('yt:crop=16:9'));
            }
            flashvars[i] = 'keywords=' + keywords.join(',');
        }
    }
    player.setAttribute('flashvars', flashvars.join('&'));
    player.src += "";
}

var target = document.getElementById('watch-actions');  

var group = document.createElement('span');
group.setAttribute("class", "yt-uix-button-group");
target.appendChild(group);

var button = document.createElement('input');
button.setAttribute("class", "start yt-uix-tooltip-reverse  yt-uix-button yt-uix-button-default yt-uix-tooltip");
button.setAttribute("style", 'width:17px;height:2.77em;padding:0px 6px');
button.setAttribute("value", '4:3');
button.setAttribute("title", "Stretch to 4:3");
button.addEventListener('click', setAspectNarrow, false);
group.appendChild(button);

var button = document.createElement('input');
button.setAttribute("class", "middle yt-uix-tooltip-reverse  yt-uix-button yt-uix-button-default yt-uix-tooltip");
button.setAttribute("style", 'width:24px;height:2.77em;padding:0px 6px');
button.setAttribute("value", '16:9');
button.setAttribute("title", "Stretch to 16:9");
button.addEventListener('click', setAspectWide, false);
group.appendChild(button);

var button = document.createElement('input');
button.setAttribute("class", "end yt-uix-tooltip-reverse  yt-uix-button yt-uix-button-default yt-uix-tooltip");
button.setAttribute("style", 'width:24px;height:2.77em;padding:0px 6px');
button.setAttribute("value", 'Zoom');
button.setAttribute("title", "Fix Windowboxing");
button.addEventListener('click', fixWindowBox, false);
group.appendChild(button);

Интересно. У меня была другая версия этого скрипта, в которой не было почтового ящика zoom / fix. Я собираюсь попробовать это на следующей неделе; хотя он не допускает точного масштабирования, так что это подход «все или ничего».
клонист

-1
// Youtube has made some changes and old code does not work. This update fixes that. //
// Youtube Aspect GreaseMonkey JavaScript; updated: 19-SEP-2014 (ACS) //
// ==UserScript==
// @name           Youtube Aspect
// @description    Adds buttons to toggle 4:3 and 16:9 aspect ratios on youtube
// @namespace      scupizzaboy - "fixed" by Kocayine
// @include        http://youtube.*/*
// @include        http://*.youtube.*/*
// @include        https://youtube.*/*
// @include        https://*.youtube.*/*
// @grant          none
// ==/UserScript==

function setAspectWide()
{
    var player = document.getElementById('movie_player');
    var flashvars = player.getAttribute('flashvars').split('&');
    for (var i = 0; i < flashvars.length; i++)
    {
        if (flashvars[i].indexOf('keywords') == 0)
        {
            var keywords = flashvars[i].split('=')[1].split(',');
            var found = false;
            for (var j = 0; j < keywords.length; j++)
            {
                if (decodeURIComponent(keywords[j]) == 'yt:stretch=4:3')
                {
                    keywords[j] = encodeURIComponent('yt:stretch=16:9');
                    found = true;
                }
            }
            if (found == false)
            {
                keywords.push(encodeURIComponent('yt:stretch=16:9'));
            }
            flashvars[i] = 'keywords=' + keywords.join(',');
        }
    }
    player.setAttribute('flashvars', flashvars.join('&'));
    player.parentNode.innerHTML = player.parentNode.innerHTML;
}

function setAspectNarrow()
{
    var player = document.getElementById('movie_player');
    var flashvars = player.getAttribute('flashvars').split('&');
    for (var i = 0; i < flashvars.length; i++)
    {
        if (flashvars[i].indexOf('keywords') == 0)
        {
            var keywords = flashvars[i].split('=')[1].split(',');
            var found = false;
            for (var j = 0; j < keywords.length; j++)
            {
                if (decodeURIComponent(keywords[j]) == 'yt:stretch=16:9')
                {
                    keywords[j] = encodeURIComponent('yt:stretch=4:3');
                    found = true;
                }
            }
            if (found == false)
            {
                keywords.push(encodeURIComponent('yt:stretch=4:3'));
            }
            flashvars[i] = 'keywords=' + keywords.join(',');
        }
    }
    player.setAttribute('flashvars', flashvars.join('&'));
    player.parentNode.innerHTML = player.parentNode.innerHTML;
}

var target = document.getElementById('watch8-secondary-actions');

var button = document.createElement('input');  
button.name = 'setAspectNarrow';  
button.setAttribute("class", "start yt-uix-tooltip-reverse  yt-uix-button yt-uix-button-default yt-uix-tooltip");
button.type = 'button';  
button.value = '4:3';  
button.addEventListener('click', setAspectNarrow, false);
if (target != null) target.appendChild(button);

var button = document.createElement('input');  
button.name = 'setAspectWide';  
button.setAttribute("class", "start yt-uix-tooltip-reverse  yt-uix-button yt-uix-button-default yt-uix-tooltip");
button.type = 'button';  
button.value = '16:9';  
button.addEventListener('click', setAspectWide, false);
if (target != null) target.appendChild(button);

Хотя этот блок кода может ответить на этот вопрос, было бы лучше, если бы вы могли объяснить, почему это происходит.
Дэвид Постилл

YouTube добавил дополнительную кнопку («... Еще»), и эти кнопки Aspect Ratio должны быть перемещены за пределы этой кнопки. Сегодня исправлена ​​ошибка в первых двух строках комментариев, чтобы она работала, и несколько строк упростили.
А.Чандрасекаран

Огромное спасибо. Можете ли вы добавить 5: 4, пожалуйста?
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.